Nhật ký chung/mysql

Khi ghi log ra file mysql có thể chhmod -R cho folder ghi log ( nếu chủ sở hữu không phải là mysql thì mysql không ghi log được )

# Gói được phép tối đa

Khi máy khách MySQL hoặc máy chủ mysqld nhận được gói lớn hơn max_allowed_packet byte, nó sẽ báo lỗi ER_NET_PACKET_TOO_LARGE và đóng kết nối. Với một số khách hàng, bạn cũng có thể gặp lỗi Lost connection to MySQL server during query nếu gói liên lạc quá lớn

Tìm hiểu cách cấu hình chức năng ghi nhật ký với các truy vấn tốn nhiều thời gian thực thi thành công trên dịch vụ MySQL

Qua

Quách Chí Cường

-

Nhìn cái tiêu đề thôi là các bạn cũng có thể hiểu bài viết này đề cập đến việc cấu hình ghi lại thông tin đăng nhập các truy vấn tốn nhiều thời gian để thực thi thành công trên hệ thống dịch vụ MySQL. Điều này khá hữu ích trong việc xác định xem vấn đề có nằm trong mã gây ra hiện tượng truy vấn cơ sở dữ liệu lâu hay không. Nhìn chung cấu hình đơn giản vô cùng chả có gì khó cả

Cấu hình dưới đây áp dụng công thức chính từ MySQL v5. 6 , phiên bản thấp hơn sẽ có sự thay đổi khác được nêu ở phần “Lưu ý” cuối bài. Configure this if configure in file “my. cnf” hay tên tệp sử dụng cho hoạt động dịch vụ MySQL sẽ mang tính chất vĩnh viễn cho mỗi lần dịch vụ MySQL khởi động lại sẽ tải cấu hình trong tệp.

# vi /etc/my.cnf
[mysqld]

...

### Slow Query Log Configuration ###
### Only Avaiable on MySQL v5.6  ###
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/server.x.x.x.x.slow_queries.log
long_query_time = 1
log_output = FILE

...

 
Diễn giải giá trị cấu hình
+ long_query_time = [value] :
– Giá trị này sẽ quy định rằng nếu 1 truy vấn tốn nhiều thời gian để thực thi hơn số thời gian mà mình quy định ở phần cấu hình này thì MySQL sẽ ghi lại thông tin liên quan . Ở đây mình để nó là số “ 1 “, cũng nên gần như là ghi lại tất cả các truy vấn chậm Thời gian thực thi hơn 1 giây. Default is value "10" tức là 10 giây.

+ slow_query_log = [0/1]
– If value is “ 0” thì là tắt tính năng log slow query, còn “1” là kích hoạt chức năng này. Mặc định là MySQL tắt tính năng này đó nhé.

+ slow_query_log_file = file_name
– Giá trị này quy định tên của nhật ký tệp sẽ được lưu vào tệp đó, tệp này sẽ được tạo tại . Mặc định nếu không thay đổi thì tên của file log slow_query sẽ là “host_name-slow. nhật ký”.

+ log_output = [TỆP. NHỮNG CÁI BÀN. NONE]
– Cấu hình này chỉ nhằm mục đích xác định loại nhật ký mà chúng tôi sẽ lưu thông tin xuống, cụ thể là tệp hoặc 1 bảng trên cơ sở dữ liệu của dịch vụ MySQL. Thông thường thì mình sẽ chỉ xác định là “FILE” vì mình lưu truy vấn chậm log down file trên ổ cứng. Nếu cấu hình của bạn là “NONE” thì coi như sẽ không có bất kỳ thông tin nhật ký thông tin nào được ghi ra cả vì nó biết loại đối tượng lưu trữ nhật ký truy vấn chậm là gì ở đâu.
– “log_output” này cũng áp dụng chung cho cấu hình “General_log“.

Sau đó khởi động lại dịch vụ hoặc tải lại MySQL

# /etc/init.d/mysql restart

 
Lưu ý.
– Đối chiếu với 1 số hệ thống dịch vụ MySQL cũ từ 5. 5 return down, then don't tồn tại trong cấu hình tên là “slow_query_log” do has beenđổi tên từ “log-slow-queries” sang mới. Nên nếu bạn cấu hình trên hệ thống MySQL cũ thì nên dùng tên cấu hình là.

log-slow-queries = 1

 

Cấu hình nhật ký “slow query” không cần khởi động lại dịch vụ MySQL

Giả sử bạn đang gỡ lỗi hoạt động MySQL và muốn bật tính năng lưu nhật ký với truy vấn chậm mà không cần khởi động lại dịch vụ thì ta có thể cấu hình thông qua dòng lệnh MySQL. Không cần thiết phải bất kỳ thao tác cấu hình với tập tin “my. cnf” và khởi động lại dịch vụ

Đăng nhập dòng lệnh MySQL và thực hiện thiết lập các giá trị cấu hình GLOBAL tương ứng như sau

# mysql -uroot -p
mysql> SET GLOBAL slow_query_log_file = '/var/lib/mysql/server.x.x.x.x.slow_queries.log';
mysql> SET GLOBAL long_query_time = 1; 
mysql> SET GLOBAL slow_query_log = 1;
mysql> FLUSH LOGS;

 
Kiểm tra lại các giá trị được cấu hình chưa phù hợp.

mysql> SHOW GLOBAL VARIABLES LIKE 'slow\_%';
+---------------------+-----------------------------------------------------+
| Variable_name       | Value                                               |
+---------------------+-----------------------------------------------------+
| slow_query_log      | ON                                                  |
| slow_query_log_file | /var/lib/mysql/server.x.x.x.x.slow_queries.log      |
+---------------------+-----------------------------------------------------+

mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 1.000000  |
+-----------------+-----------+

 
Chỉ cần như vậy là xong rồi. Chúc các bạn thành công.

Facebook

Twitter

Pinterest

WhatsApp

liên kết

điện báo

Bài viết trước [DirectAdmin] Sửa lỗi “RoundCube. Không thể lưu mật khẩu mới. Không thể tạo kết nối ổ cắm với tcp. //máy chủ cục bộ. 2222”

Bài viết tiếp theo [MySQL] Hướng dẫn cấu hình đăng nhập bảng điều khiển MySQL không cần nhập user-pass

Nhật ký chung/mysql

Quách Chí Cường

https. //cuongquach. com/

Bạn đang theo dõi website " https. //cuongquach. com/" nơi lưu trữ những kiến ​​thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này