阅读更多
如何myql server 中,记录用户登录失败的次数,也是很重要的,在mysql 5.x系列中,暂时可以通过配置文件中my.ini设置的方法进行设置,小结如下:
1
general_log_file = /var/log/mysql/mysql.log
general_log = 1
这里就可以设置log了,所有的都放在里面了,比如错误登录的,可以看到在:
121227 8:32:18 39 Connect root@localhost on
39 Connect Access denied for user 'root'@'localhost' (using password: YES)
但一个缺点是,LOG太大了,找错误日志不大方便。
2 从5.5开始,可以设置为log_warnings = 2就可以了
3 如果使用 Percona Server 5.5,则更强大了,在5.5中的my.cnf中,
userstat = 1
如果是percona 5.1,则
userstat_running = 1
mysql> select * from user_statistics where user='root'\G
*************************** 1. row ***************************
USER: root
TOTAL_CONNECTIONS: 25
CONCURRENT_CONNECTIONS: 0
CONNECTED_TIME: 464
BUSY_TIME: 96
CPU_TIME: 19
BYTES_RECEIVED: 62869617
BYTES_SENT: 14520
BINLOG_BYTES_WRITTEN: 0
ROWS_FETCHED: 783051
ROWS_UPDATED: 1017714
TABLE_ROWS_READ: 1484751
SELECT_COMMANDS: 14
UPDATE_COMMANDS: 103
OTHER_COMMANDS: 3556
COMMIT_TRANSACTIONS: 0
ROLLBACK_TRANSACTIONS: 0
DENIED_CONNECTIONS: 2
LOST_CONNECTIONS: 16
ACCESS_DENIED: 0
EMPTY_QUERIES: 0
TOTAL_SSL_CONNECTIONS: 0
这里,可以看到一共有25个连接,2个是拒绝的连接,还有其他大量的连接有用信息,注意的是,这些信息保存在INFORMATION_SCHEMA表,一旦重新启动,则清空了;
此外,MYSQL还允许使用C++等语言编写审计插件,
详细见:
http://dev.mysql.com/doc/refman/5.5/en/writing-audit-plugins.html