Bạn có thể sử dụng nhật ký chung. Trong thực tế, bạn nên thử sử dụng phiên bản bảng MySQL của nhật ký chung.
Nếu bạn chạy này:
SHOW CREATE TABLE mysql.general_log\G
Bạn sẽ thấy một cái gì đó như thế này:
mysql> show create table mysql.general_log\G
*************************** 1. row ***************************
Table: general_log
Create Table: CREATE TABLE `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`thread_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
1 row in set (0.14 sec)
mysql>
Các user_host
cột sẽ ghi lại người sử dụng MySQL và địa chỉ IP / DNS Tên lệnh đến từ đâu.
Có lẽ bạn đang nói ngay bây giờ, "Bảng đó là một tệp CSV. Tôi sẽ phải phân tích cú pháp." Đó là sự thật, bạn sẽ phải. Tuy nhiên, bạn có biết rằng bạn có thể chuyển đổi nó thành bảng MyISAM không? Tôi thực sự đã thử điều này cho một trong những Khách hàng DB Hosting của chủ nhân của tôi và tôi đã viết một bài giải thích về nó (Xem Feb 24, 2011
bài đăng bên dưới).
Dưới đây là các bước cơ bản:
Tạo bảng mysql.general_log MyISAM
Chạy như sau:
CREATE TABLE mysql.general_log_original LIKE mysql.general_log;
ALTER TABLE mysql.general_log ENGINE=MyISAM;
ALTER TABLE mysql.general_log ADD INDEX (event_time);
Kích hoạt nhật ký chung
Thêm vào đây /etc/my.cnf
[mysqld]
log-output=TABLE
general-log
Nếu bạn cũng muốn phiên bản văn bản của nhật ký chung, hãy thêm phần này:
[mysqld]
log-output=TABLE,FILE
general-log
general-log-file=/var/log/mysql_general.log
Khởi động lại mysql
Đơn giản chỉ cần chạy service mysql restart
Tôi có nhiều bài viết về việc sử dụng nhật ký chung và nhật ký chậm dưới dạng bảng MyISAM:
CAUPAT
MySQL 5.5.28 gần đây đã giới thiệu plugin đăng nhập kiểm toán và cách cài đặt nó .
Dưới đây là các tùy chọn
Đây là những điểm mới đối với tôi vì vậy tôi không có ưu và nhược điểm nào tại thời điểm này trên Plugin Audit Log.