MySQL日志文件配置

      博客原文请访问:http://zhuqiuhui.space/Blogs/2017/03/mysql-log-configuration.html

        开发过程中遇到的sql问题,总想看下数据库执行的日志,便研究了下怎么看sql操作日志的方法,特分享如下,看了很多资料,都写的不是太全,总结了一下,希望支持。

一、my.cnf文件查找

    不同的操作系统my.cnf放的位置是不一样的。

  1. windows下mysql配置文件存放在“C:/Program Files/MySQL/MySQL Server 5.5/my.ini”下。
  2. Mac OS X中默认是没有my.cnf文件的,需要对mysql进行定制的(定制过程见第二节)。

    验证Mac下没有my.cnf文件,可使用命令:

     
             
    1
     
             
    sudo find / -name my.cnf

    进行搜索一下,搜索结果什么也没有,便得以验证。也可以使用命令:
     
             
    1
     
             
    sudo mysql --help | grep my.cnf
    来查看下有关my.cnf的help信息,该命令在mac上的搜索结果如下:
     
             
    1
    2
     
             
    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
    官方的解释是: 
    You can now check for files using the above output at /etc/my.cnf, then /etc/mysql/my.cnf and so on. If there isn't one at one of those locations, you can create one and know MySQL will use it. 
    意思是在上述路径中没有找到my.cnf的话,你就可以新建一个my.cnf了。

二、my.cnf定制及日志文件配置

  1. 首先登录上mysql,查看日志服务是否开启(MySQL默认状态下是未开启日志服务的,即OFF状态):
     
             
    1
     
             
    show variables like 'log_bin'
  2. 开启日志服务(为ON状态就不用开启了,本文针对于OFF状态)。由于mac下没有my.cnf文件,所以可以从目录 
    /usr/local/mysql/support-files/my-medim.cnf 
    或者 
    /usr/local/opt/mysql/support-files/my-default.cnf 
    下拷贝任意一个.cnf文件到“/etc”目录下,并且重命名为my.cnf。
  3. 更改my.cnf权限,并添加日志路径配置。使用命令
     
             
    1
     
             
    chmod 755 /etc/my.cnf
    修改my.cnf权限,可读可写权限。然后打开my.cnf文件,找到“[mysqld]”,其下面添加以下内容:
     
             
    1
    2
    3
    4
    5
    6
     
             
    [mysqld]
    # binlog 配置
    log-bin = /usr/local/var/mysql/logs/mysql-bin.log
    expire-logs-days = 14
    max-binlog-size = 500M
    server-id = 1
    当然,里面的参数可以自己配置,包括路径等。配置完成后,重启mysql服务(mac下本文用brew安装的mysql,可使用mysql.server start/stop启动或者关闭mysql服务),重新登录mysql,重新执行:
     
             
    1
     
             
    show variables like 'log_bin'
    已经处于开启“ON”状态。
  4. 查看日志。进行一系列mysql操作后,在上述配置的日志文件目录下查看,便存在了以下文件: 
    mysql-bin.000001 mysql-bin.000002 mysql-bin.index 
    其中 mysql-bin.index 文件中存放的是日志文件的索引,日志文件如“mysql-bin.000002”可以用shell命令mysqlbinlog来查看,即 “mysqlbinlog mysql-bin.000002”。 
    备注:binlog,即二进制日志,它记录了数据库上的所有改变,改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕。查看可使用sql命令“show binlog events in 'mysql-bin.000002';”          博客原文请访问:http://zhuqiuhui.space/Blogs/2017/03/mysql-log-configuration.html

你可能感兴趣的:(数据库)