博客原文请访问:http://zhuqiuhui.space/Blogs/2017/03/mysql-log-configuration.html
开发过程中遇到的sql问题,总想看下数据库执行的日志,便研究了下怎么看sql操作日志的方法,特分享如下,看了很多资料,都写的不是太全,总结了一下,希望支持。
一、my.cnf文件查找
不同的操作系统my.cnf放的位置是不一样的。
- windows下mysql配置文件存放在“C:/Program Files/MySQL/MySQL Server 5.5/my.ini”下。
- Mac OS X中默认是没有my.cnf文件的,需要对mysql进行定制的(定制过程见第二节)。
验证Mac下没有my.cnf文件,可使用命令:
1sudo find / -name my.cnf
进行搜索一下,搜索结果什么也没有,便得以验证。也可以使用命令:1sudo mysql --help | grep my.cnf12Default 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定制及日志文件配置
- 首先登录上mysql,查看日志服务是否开启(MySQL默认状态下是未开启日志服务的,即OFF状态):
1show variables like 'log_bin'
- 开启日志服务(为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。 - 更改my.cnf权限,并添加日志路径配置。使用命令
1chmod 755 /etc/my.cnf123456[mysqld]# binlog 配置log-bin = /usr/local/var/mysql/logs/mysql-bin.logexpire-logs-days = 14max-binlog-size = 500Mserver-id = 11show variables like 'log_bin'
- 查看日志。进行一系列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