【实验小结六】mysql日志的故事

打开二进制日志(二进制日志内容:更改数据库的操作)

在/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

【慢查询日志与性能优化相关】


你可能感兴趣的:(mysql,数据库,二进制,service,start)