Có truy vấn/cách nào để hiển thị các truy vấn cuối cùng được thực hiện trên TẤT CẢ máy chủ không?Làm thế nào để hiển thị các truy vấn cuối cùng được thực hiện trên MySQL?
Trả lời
Đối với những người may mắn có MySQL> = 5.1.12, bạn có thể kiểm soát tùy chọn này trên toàn cầu trong thời gian chạy:
- Execute
SET GLOBAL log_output = 'TABLE';
- Execute
SET GLOBAL general_log = 'ON';
- Hãy nhìn vào bảng
mysql.general_log
Nếu bạn muốn đầu ra vào một tập tin thay vì một bảng:
SET GLOBAL log_output = "FILE";
mặc định.SET GLOBAL general_log_file = "/path/to/your/logfile.log";
SET GLOBAL general_log = 'ON';
tôi thích phương pháp này để chỉnh sửa file .cnf vì:
- bạn không chỉnh sửa các tập tin
my.cnf
và có khả năng vĩnh viễn quay về khai thác gỗ - bạn' không đánh bắt cá xung quanh hệ thống tập tin tìm kiếm nhật ký truy vấn - hoặc thậm chí tệ hơn, bị phân tâm bởi sự cần thiết cho đích đến hoàn hảo.
/var/log /var/data/log
/opt /home/mysql_savior/var
- khởi động lại máy chủ để lại cho bạn nơi bạn bắt đầu (log là theo mặc định vẫn off)
- Bạn không cần phải khởi động lại máy chủ và ngắt kết nối bất kỳ hiện tại với nó.
Để biết thêm thông tin, xem MySQL 5.1 Reference Manual - Server System Variables - general_log
Có thể bạn có thể tìm hiểu điều đó bằng cách xem query log.
Bạn có thể bật general query log cho loại chẩn đoán đó. Nói chung, bạn không đăng nhập tất cả các truy vấn SELECT trên một máy chủ sản xuất mặc dù, đó là một kẻ giết người hiệu suất.
Chỉnh sửa cấu hình MySQL của bạn, ví dụ: /etc/mysql/my.cnf - tìm kiếm, hoặc thêm, một dòng như mysql
[mysqld]
log = /var/log/mysql/mysql.log
Restart này để nhận sự thay đổi đó, bây giờ bạn có thể
tail -f /var/log/mysql/mysql.log
Hey mau, bạn có thể xem . các truy vấn khi họ đi vào
general_log_file và general_log trong my.cnf –
Điều này đang hoạt động nếu bạn muốn biết khởi động lại mysql http: // askubuntu.com/questions/82374/how-do-i-start-stop-mysql-server –
Phiên bản mới hơn của Mac OS X (ít nhất là trên Mac OS X) yêu cầu các tùy chọn general_log_file và general_log thay vì chỉ "log =". Nếu không, bạn nhận được một lỗi như thế này: ERROR/usr/local/mysql/bin/mysqld: tùy chọn mơ hồ '--log =/tmp/mysql_queries.log' (log-bin, log_slave_updates) –
Bạn có thể ghé qua sau trong linux
cd /root
ls -al
vi .mysql_history
Nó có thể giúp
Điều này có vẻ như nó chỉ hoạt động đối với ứng dụng khách dòng lệnh mysql chính thức và chỉ cho các truy vấn được thực hiện bởi người dùng root – golimar
Câu hỏi nói 'tất cả máy chủ' làm cho câu trả lời này không chính xác. Điều này sẽ hiển thị tất cả các truy vấn được thực hiện bởi một khách hàng duy nhất. – FlipMcF
Nếu mysql binlog được bật, bạn có thể kiểm tra các lệnh do người dùng chạy bằng cách thực hiện lệnh sau trong bảng điều khiển linux bằng cách duyệt tới thư mục mysql binlog mysqlbinlog binlog.000001> /tmp/statements.sql bật [mysqld] log =/var /log/mysql/mysql.log hoặc nhật ký gen sẽ có ảnh hưởng đến hiệu suất của mysql –
Nếu mysql binlog được kích hoạt, bạn có thể kiểm tra các lệnh được chạy bởi người dùng bằng cách thực hiện lệnh sau trong điều khoản linux ole bằng cách duyệt tới mysql thư mục binlog
mysqlbinlog binlog.000001 > /tmp/statements.sql
phép
[mysqld]
log = /var/log/mysql/mysql.log
hoặc nhật ký chung, sẽ có ảnh hưởng đến hiệu suất của mysql
có thể, nhưng đau đớn. hữu ích hơn nếu bạn đang tìm kiếm để xem những gì đã xảy ra trong quá khứ. – pdwalker
Bạn có thể làm điều chảy cho nhật ký truy vấn giám sát mysql .
mở mysql tập tin cấu hình my.cnf
sudo nano /etc/mysql/my.cnf
Tìm dòng sau dưới một tiêu đề [mysqld]
và bỏ ghi chú những dòng này để cho phép đăng nhập
general_log_file = /var/log/mysql/mysql.log
general_log = 1
Khởi động lại máy chủ mysql của bạn cho phản ánh những thay đổi
sudo service mysql start
Theo dõi nhật ký máy chủ mysql bằng dấu phẩy sau nd trong terminal
tail -f /var/log/mysql/mysql.log
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;
1) Nếu chung mysql logging được kích hoạt thì chúng ta có thể kiểm tra các truy vấn trong file log hoặc bảng dựa những gì chúng tôi đã đề cập trong config. Kiểm tra những gì được kích hoạt với lệnh sau đây
mysql> show variables like 'general_log%';
mysql> show variables like 'log_output%';
Nếu chúng ta cần truy vấn lịch sử trong bảng sau đó
Execute SET GLOBAL log_output = 'TABLE';
Execute SET GLOBAL general_log = 'ON';
Hãy nhìn vào bảng mysql.general_log
Nếu bạn muốn đầu ra một tệp:
SET GLOBAL log_output = "FILE"; which is set by default.
SET GLOBAL general_log_file = "/path/to/your/logfile.log";
SET GLOBAL general_log = 'ON';
2) Chúng tôi cũng có thể kiểm tra các truy vấn trong tệp .mysql_history cat ~/.mysql_history
Nếu bạn không muốn thay đổi cấu hình MySQL, bạn có thể sử dụng lược tả SQL như "Neor Profile SQL" http://www.profilesql.com.
- 1. Nhận truy vấn được thực thi cuối cùng trong MySQL bằng PHP/CodeIgniter
- 2. Để có được thời gian thực hiện truy vấn MYSQL trong Truy vấn
- 3. Trong PHP với PDO, làm cách nào để kiểm tra truy vấn SQL được truy vấn cuối cùng?
- 4. hibernate hiển thị thời gian truy vấn thực hiện
- 5. Đuôi trạng thái (chỉ hiển thị các dòng mới từ lần thực hiện cuối cùng)
- 6. Thời gian thực hiện truy vấn MySql
- 7. Làm thế nào để tôi biết khi nào async cuối cùng được thực hiện?
- 8. làm thế nào để hiển thị lỗi MySql trong php
- 9. Làm thế nào để kiểm tra khi nào autogrowth được thực hiện cuối cùng?
- 10. Làm cách nào để xóa một truy vấn MySQL chưa được thực hiện khỏi dòng lệnh?
- 11. Sử dụng truy vấn MySQL phải đi qua hàng để thực hiện một cây đệ quy
- 12. thực hiện truy vấn mysql trong biến
- 13. Làm thế nào để có được hồ sơ cuối cùng
- 14. Làm thế nào để hiển thị các truy vấn SQL chạy trong bảng điều khiển Rails?
- 15. Làm cách nào để thực hiện nhiều truy vấn SQL trong MySQL Workbench?
- 16. CodeIgniter: Cách Thực hiện Truy vấn MySQL (Tên riêng biệt) Truy vấn MySQL
- 17. thực hiện truy vấn sql trên DataTable
- 18. Làm thế nào để thực hiện truy vấn được phân trang bằng ScalaQuery?
- 19. Chọn dữ liệu từ truy vấn MySQL "bảng hiển thị"
- 20. Làm thế nào để thực hiện truy vấn INSERT IGNORE với Slick?
- 21. Làm thế nào để sử dụng JdbcTemplate để thực hiện các truy vấn tham
- 22. Làm thế nào để chuyển các truy vấn để thực hiện hiệu quả trong đường ray?
- 23. Làm thế nào để không hiển thị khung cuối cùng trong một dòng nhật ký monolog?
- 24. Làm thế nào để thực hiện một truy vấn SQL parametrized trên ASP cổ điển?
- 25. CakePHP - truy vấn cuối cùng chạy
- 26. Làm cách nào để in các truy vấn được thực hiện bởi phương thức django .save()?
- 27. Làm thế nào để thực hiện các truy vấn bitwise DB trong Django?
- 28. Máy chủ SQL: cách truy vấn khi sao lưu nhật ký giao dịch cuối cùng đã được thực hiện?
- 29. Tên hiển thị MySQL cùng với các cột
- 30. MySQL - làm thế nào để hiển thị PROCESSLIST chỉ với các quy trình của người dùng hiện tại?
Thiết kế giao diện người dùng tuyệt vời. Dù sao, bảng nhật ký MySQL thực sự đang sử dụng công cụ CSV để bạn có thể làm tất cả những gì mà FlipMcF đã nói trong câu trả lời về việc cho phép đăng nhập vào bảng general_log và có đuôi của general_log như sau: tail -f/var/lib/mysql/mysql /general_log.CSV –
damn it, mysql doc cho điều này thậm chí không bắn tham số bảng. cảm ơn rất nhiều. – Vangel
@Vangel, xem [tại đây] (http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_log_output). Nó ở đó. Nhưng có, nó là bực bội để không nhìn thấy nó cho [phiên bản 5.5] (http://dev.mysql.com/doc/refman/5.5/en/query-log.html), mặc dù nó được hiển thị cho [phiên bản 5.1 ] (http://dev.mysql.com/doc/refman/5.1/en/query-log.html). –