990509 7:37:09 492 Connect Paul@localhost on test
492 Query show databases
492 Query show tables
492 Field List tbl_1
492 Field List tbl_2
...
990509 7:34:22 492 Query CREATE TABLE my_tbl (val INT)
990509 7:34:34 492 Query INSERT INTO my_tbl values (1)
990509 7:34:38 492 Query DROP TABLE my_tbl
990509 7:34:40 492 Quit
一般日志包含日期和时间、服务器进程ID、事件类型和事件信息栏目。
同一个会话出现在更新日志中看上去像这样:
use test;
CREATE TABLE my_tbl (val int);
INSERT INTO my_tbl VALUES(1);
DROP TABLE my_tbl;
对更新日志,用--log-long-format选项获得一个扩展形式的日志,扩展日志提供有关谁何时发出每一条查询,这使用更多的磁盘空间,但如果你想知道谁在做什么,而不用将更新日志对照一般日志的内容找到连接事件。
对上面的会话,扩展更新日志产生这样的信息:
# Time: 990507 7:32:42
# User@Host: paul [paul] @ localhost []
use test;
CREATE TABLE my_tbl (val int);
# User@Host: paul [paul] @ localhost []
INSERT INTO my_tbl VALUES(1);
# Time: 990507 7:32:43
# User@Host: paul [paul] @ localhost []
DROP TABLE my_tbl;
保证你的日志文件安全并且不让任意用户读取是个好主意。一般日志和更新日志都能包含诸如口令等的敏感信息,因为它们包含查询文本。如:
990509 7:23:31 4 Query UPDATE user SET Password=PASSWORD(\"secret\")
WHERE user=\"root\"
对于检查和设置数据目录的权限,请见《MySQL安全性指南》。使数据目录安性的指令包含下列命令: