打开二进制日志(二进制日志内容:更改数据库的操作)
在/etc/mysql/my.cnf中
将log_bin这一行的注释去掉就开启了后面的是保存的路径
下面的expire_logs_days是过多久,Mysql自动删除二进制日志
max_binlog_size为最大二进制日志大小
注意重启mysql后刚刚的修改才生效
shell>sudo service mysql stop
shell>sudo service mysql start
然后登入mysql
每次登陆后都会生成二进制日志
我的二进制日志具体为
mysql-bin.000001(这里的mysql为主机名字)
可以在MySQL里用:SHOW BINARY LOGS来查看
查看具体内容需要在shell里用:例如
mysqlbinlog /var/log/mysql/mysql-bin.0000002
来查看
删除所有日志文件(还会生成一个新的二进制日志文件):
mysql>RESET MASTER;
删除指定的日志文件:
mysql>PURGE MASTER LOGS TO ‘mysql-bin.0000002‘;
to是到的意思所以上面那句为删除mysql-bin.0000001
还可以根据时间来部分删除
:mysql>PURGE MASTER LOGS BEFORE ‘20150531‘;
从二进制日志中恢复数据:
shell>mysqlbinlog --stopdatetime="2015-05-31 10:18:15"/var/log/mysql/mysql-bin.000002|mysql -u root -p
其中时间为那个二进制日志里的时间
暂停二进制日志:
mysql>set sql_log_bin=OFF;
恢复二进制日志:
mysql>set sql_log_bin=ON;
【执行flush logs的影响:会多生成一个新的日志文件】
所以上面的指令要在打开了二进制日志时候才能用。
开启错误日志(后缀为.err)
同样在my.cnf里让log_error的注释取消
查看错误日志所在的路径
mysql>show variables like ‘log_error‘
删除错误日志:
shell>mysqladmin -u root -p flush-logs
或者:
mysql>flush logs
启动通用查询日志(通用查询日志:用户对数据库的每一步操作):
同理在[mysqld]
里加:log
删除/其实是重新创建:
mysqladmin -u root -p flush-logs
启动慢查询日志(慢查询日志内容:执行时间超过long_query_time的查询或者不使用索引的查询)
启动设置慢查询日志:与前面的同
在my.cnf里添加:log-slow-queries(后面不加指定路径即使用其默认的data路径)
重新生成慢查询日志文件
shell>mysqladmin -u root -p flush-logs
mysql>flush logs
【慢查询日志与性能优化相关】