mysql 中记录用户登录错误日志方法小结

阅读更多
  如何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

你可能感兴趣的:(mysql,审计,错误日志)