Làm cách nào để kiểm tra nhật ký truy vấn MySQL?

Nhật ký truy vấn chung là nhật ký của mọi truy vấn SQL nhận được từ máy khách, cũng như mỗi máy khách kết nối và ngắt kết nối. Vì đó là bản ghi của mọi truy vấn mà máy chủ nhận được nên nó có thể lớn lên khá nhanh

Tuy nhiên, nếu bạn chỉ muốn có một bản ghi các truy vấn làm thay đổi dữ liệu, thì tốt hơn bạn nên sử dụng nhật ký nhị phân để thay thế. Một điểm khác biệt quan trọng là nhật ký nhị phân chỉ ghi lại một truy vấn khi giao dịch được thực hiện bởi máy chủ, nhưng nhật ký truy vấn chung sẽ ghi lại một truy vấn ngay lập tức khi máy chủ nhận được.

Kích hoạt Nhật ký truy vấn chung

Nhật ký truy vấn chung bị tắt theo mặc định

Để bật nhật ký truy vấn chung, hãy đặt biến hệ thống

[mariadb]
...
general_log
3 thành
[mariadb]
...
general_log
4. Nó có thể được thay đổi linh hoạt với
[mariadb]
...
general_log
5. Ví dụ

SET GLOBAL general_log=1;

Nó cũng có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

[mariadb]
...
general_log

Định cấu hình Tên tệp nhật ký truy vấn chung

Theo mặc định, nhật ký truy vấn chung được ghi vào

[mariadb]
...
general_log
6 trong thư mục
[mariadb]
...
general_log
7. Tuy nhiên, điều này có thể được thay đổi

Một cách để định cấu hình tên tệp nhật ký truy vấn chung là đặt biến hệ thống

[mariadb]
...
general_log
8. Nó có thể được thay đổi linh hoạt với
[mariadb]
...
general_log
5. Ví dụ

SET GLOBAL general_log_file='mariadb.log';

Nó cũng có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

[mariadb]
...
general_log
0

Nếu nó là một đường dẫn tương đối, thì

[mariadb]
...
general_log
8 có liên quan đến thư mục
[mariadb]
...
general_log
7

Tuy nhiên, biến hệ thống

[mariadb]
...
general_log
8 cũng có thể là một đường dẫn tuyệt đối. Ví dụ

[mariadb]
...
general_log
4

Một cách khác để định cấu hình tên tệp nhật ký truy vấn chung là đặt tùy chọn

SET GLOBAL general_log_file='mariadb.log';
3, tùy chọn này sẽ định cấu hình MariaDB để sử dụng tiền tố chung cho tất cả các tệp nhật ký (e. g. nhật ký truy vấn chung, nhật ký truy vấn chậm, nhật ký lỗi, nhật ký nhị phân, v.v. ). Tên tệp nhật ký truy vấn chung sẽ được tạo bằng cách thêm phần mở rộng
SET GLOBAL general_log_file='mariadb.log';
4 vào tiền tố này. Tùy chọn này không thể được đặt động. Nó có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

[mariadb]
...
general_log
7

SET GLOBAL general_log_file='mariadb.log';
3 không thể là đường dẫn tuyệt đối. Tên tệp nhật ký có liên quan đến thư mục
[mariadb]
...
general_log
7

Chọn đích đầu ra của nhật ký truy vấn chung

Nhật ký truy vấn chung có thể được ghi vào một tệp trên đĩa hoặc có thể được ghi vào bảng

SET GLOBAL general_log_file='mariadb.log';
7 trong cơ sở dữ liệu
SET GLOBAL general_log_file='mariadb.log';
8. Để chọn đích đầu ra của nhật ký truy vấn chung, hãy đặt biến hệ thống
SET GLOBAL general_log_file='mariadb.log';
9

Viết Nhật ký truy vấn chung vào một tệp

Nhật ký truy vấn chung được xuất ra một tệp theo mặc định. Tuy nhiên, nó có thể được chọn rõ ràng bằng cách đặt biến hệ thống

SET GLOBAL general_log_file='mariadb.log';
9 thành
[mariadb]
...
general_log
01. Nó có thể được thay đổi linh hoạt với
[mariadb]
...
general_log
5. Ví dụ

[mariadb]
...
general_log
6

Nó cũng có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

[mariadb]
...
general_log
7

Viết nhật ký truy vấn chung vào một bảng

Nhật ký truy vấn chung có thể được ghi vào bảng

SET GLOBAL general_log_file='mariadb.log';
7 trong cơ sở dữ liệu
SET GLOBAL general_log_file='mariadb.log';
8 bằng cách đặt biến hệ thống
SET GLOBAL general_log_file='mariadb.log';
9 thành
[mariadb]
...
general_log
06. Nó có thể được thay đổi linh hoạt với
[mariadb]
...
general_log
5. Ví dụ

SET GLOBAL general_log=1;
3

Nó cũng có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

SET GLOBAL general_log=1;
4

Một số hàng trong bảng này có thể trông như thế này

[mariadb]
...
general_log
0

Xem Viết nhật ký vào bảng để biết thêm thông tin

Vô hiệu hóa Nhật ký truy vấn chung cho một phiên

Người dùng có đặc quyền SUPER có thể tắt ghi nhật ký truy vấn chung cho kết nối bằng cách đặt biến hệ thống SQL_LOG_OFF thành

[mariadb]
...
general_log
4. Ví dụ

[mariadb]
...
general_log
1

Vô hiệu hóa Nhật ký truy vấn chung cho các câu lệnh cụ thể

Trong MariaDB 10. 3. 1 trở lên, có thể vô hiệu hóa việc ghi vào nhật ký truy vấn chung cho các loại câu lệnh cụ thể bằng cách đặt biến hệ thống

[mariadb]
...
general_log
09. Tùy chọn này không thể được đặt động. Nó có thể được đặt trong nhóm tùy chọn máy chủ trong tệp tùy chọn trước khi khởi động máy chủ. Ví dụ

[mariadb]
...
general_log
2

Xoay Nhật ký truy vấn chung trên Unix và Linux

Các bản phân phối Unix và Linux cung cấp tiện ích logrotate, giúp dễ dàng xoay các tệp nhật ký. Xem Nhật ký luân phiên trên Unix và Linux để biết thêm thông tin về cách sử dụng tiện ích này để xoay nhật ký truy vấn chung

Các truy vấn mysql có được ghi lại không?

Nhật ký truy vấn chung là bản ghi chung về những gì mysqld đang làm . Máy chủ ghi thông tin vào nhật ký này khi máy khách kết nối hoặc ngắt kết nối và nó ghi lại từng câu lệnh SQL nhận được từ máy khách.

Làm cách nào để xem truy vấn cuối cùng trong MySQL?

Để lấy bản ghi cuối cùng, đây là truy vấn. mysql> select *from getLastRecord ORDER BY id DESC LIMIT 1; Sau đây là kết quả. Đầu ra ở trên cho thấy rằng chúng tôi đã tìm nạp bản ghi cuối cùng, với Id 4 và Tên Carol.