2010-03-08 24 views
81

Tôi đã làm theo hướng dẫn tại đây: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/ nhưng dường như chỉ đặt ngưỡng.Làm cách nào để tôi có thể bật nhật ký truy vấn chậm của MySQL mà không cần khởi động lại MySQL?

Tôi có cần phải làm bất cứ điều gì khác như đặt filepath không?

Theo tài liệu MySQL của

 
If no file_name value is given for --log-slow-queries, the default name is 
host_name-slow.log. The server creates the file in the data directory unless 
an absolute path name is given to specify a different directory. 

Chạy

SHOW VARIABLES

không chỉ ra bất kỳ đường dẫn tập tin log và tôi không thấy bất kỳ tập tin đăng nhập truy vấn chậm trên máy chủ của tôi ...

EDIT

Có vẻ như tôi là sử dụng máy chủ phiên bản 5.0.77, vì vậy tôi cần phải làm:

SET GLOBAL log_slow_queries = 1;

nhưng tôi nhận được: ERROR 1238 (HY000): Biến 'log_slow_queries' là một chỉ đọc biến

tôi giả sử tôi sẽ cần phải khởi động lại máy chủ và có log_slow_queries đặt trong cấu hình của tôi?

+4

Tại sao bạn không thử nghiệm trên hộp phát triển? – Martin

Trả lời

5

Tôi nghĩ rằng vấn đề là đảm bảo rằng máy chủ MySQL có quyền đối với tệp và có thể chỉnh sửa nó.

Nếu bạn có thể lấy nó để có quyền truy cập vào các tập tin, sau đó bạn có thể thử thiết lập:
SET GLOBAL slow_query_log = 1;

Nếu không, bạn có thể luôn luôn 'tải lại' máy chủ sau khi thay đổi tập tin cấu hình. Trên Linux nó thường /etc/init.d/mysql reload

+0

Tôi nhận được: ERROR 1193 (HY000): Biến hệ thống không xác định 'slow_query_log' – mmattax

+0

Bạn đang chạy phiên bản MySQL nào? –

86

Hãy thử SET GLOBAL slow_query_log = 'ON'; và có lẽ FLUSH LOGS;

này giả định bạn đang sử dụng MySQL 5.1 hoặc sau đó. Nếu bạn đang sử dụng phiên bản cũ hơn, bạn sẽ cần phải khởi động lại máy chủ. Đây là tài liệu trong MySQL Manual. Bạn có thể cấu hình nhật ký trong tệp cấu hình hoặc trên dòng lệnh.

+7

FLUSH SLOW LOGS khả dụng ở 5.5! –

+1

hoạt động hoàn hảo cho tôi phiên bản 5.5.40-MariaDB – wired00

7

MySQL Manual - slow-query-log-file

này tuyên bố rằng bạn có thể chạy sau để thiết lập các tập tin chậm-log (5.1.6 trở đi):

set global slow_query_log_file = 'path'; 

Các slow_query_log biến chỉ kiểm soát cho dù nó được kích hoạt hay không.

6

Những công việc

SET GLOBAL LOG_SLOW_TIME = 1; 
SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON; 

hỏng vào thiết lập của tôi 5.1.42

SET GLOBAL LOG_SLOW_QUERIES = ON; 
SET GLOBAL SLOW_QUERY_LOG = ON; 
set @@global.log_slow_queries=1; 

http://bugs.mysql.com/bug.php?id=32565

Hình như là cách tốt nhất để làm điều này được thiết lập log_slow_time rất cao do đó "tắt" nhật ký truy vấn chậm. Thấp hơn log_slow_time để kích hoạt nó. Sử dụng cùng một mẹo (đặt thành OFF) cho log_queries_not_using_indexes.

25

Đối với các truy vấn chậm trên phiên bản < 5.1, cấu hình sau làm việc cho tôi:

log_slow_queries=/var/log/mysql/slow-query.log 
long_query_time=20 
log_queries_not_using_indexes=YES 

Cũng lưu ý để đặt nó dưới [mysqld] một phần của tập tin cấu hình và khởi động lại mysqld.

+2

Đó là log_slow_queries thay vì log-slow-query – naomi

+5

Ngoài ra bạn phải tạo tệp nhật ký theo cách thủ công trước: 'sudo mkdir/var/log/mysql' ' sudo touch/var/log/mysql/slow-query.log' 'sudo chown -R _mysql/var/log/mysql /' – Charles

+0

'log_slow_queries' không được dùng trong MySQL 5.1.29 bởi' slow-query-log'. [Hướng dẫn tham khảo MySQL 5.1] (http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_log-slow-queries) có thêm chi tiết. – Xeoncross

15

Tìm nhật ký được bật hay không?

SHOW VARIABLES LIKE '%log%'; 

Đặt các bản ghi: -

SET GLOBAL general_log = 'ON'; 

SET GLOBAL slow_query_log = 'ON'; 
1

này nên làm việc trên mysql> 5,5

SHOW VARIABLES LIKE '% dài%';

SET GLOBAL long_query_time = 1;

1

Nếu bạn muốn kích hoạt các bản ghi lỗi chung và truy vấn chậm lỗi log

Để bắt đầu khai thác gỗ trong bảng thay vì tập tin

mysql> thiết log_output toàn cầu = “TABLE”; Để bật nhật ký truy vấn chung và chậm

mysql> global_log = 1; mysql> toàn cầu slow_query_log = 1; Tên bảng trong đó ghi nhật ký được thực hiện theo mặc định

mysql> * từ mysql.slow_log; mysql> * từ mysql.general_log; Để biết thêm chi tiết, hãy truy cập liên kết này

http://easysolutionweb.com/technology/mysql-server-logs/

Các vấn đề liên quan