一、日志管理
默认情况下,所有日志创建于mysqld数据目录中。
rpm安装的日志是在 /var/lib/mysql
其他方式安装的为自定义路径。
备份之前需要打开慢查询日志,指定慢查询路径,指定慢查询时间。打开二进制日志,同时指定id.
打开之后会有记录数据
1.1 查看当前错误日志信息:
(每一种安装方式下的安装路径不一致,具体以查询为准。)
mysql> show global variables like '%log_error%';
1.2是否记录警告日志
mysql> SHOW GLOBAL VARIABLES LIKE '%log_warnings%';
1.3 通用查询日志
1.查看日志输出的类型
mysql> SHOW GLOBAL VARIABLES LIKE '%log_output%';
2.查看默认配置
SHOW GLOBAL VARIABLES LIKE '%general_log%';
永久更改,须在配置中更改,如下:
在配置文件中增加以下三行信息:
再重启服务:
#systemctl restart mysqld
1.4 慢查询日志
mysql> SHOW GLOBAL VARIABLES LIKE '%slow_query_log%';
没有开时再配置文件中开启:
mysql> system vim /etc/my.cnf
mysql> system systemctl restart mysqld
mysql> \
mysql> exit
Bye
[root@mysqlserver ~]# mysql -uroot -p'MySQL@123';
mysql> SHOW GLOBAL VARIABLES LIKE '%slow_query_log%';
+---------------------+-------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/node1-slow.log |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)mysql>
重启之后再次连接,显示已开启。
多久之后慢查询呢?
mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
更改慢查询时间:
永久更改:在配置文件中更改
mysql> system vim /etc/my.cnf
在mysql下添加此条命令:
[mysql]
long_query_time=3再次重启服务:
mysql> system systemctl restart mysqld
mysql>SHOW GLOBAL VARIABLES LIKE 'long_query_time';
此时显示已生效。
1.5 二进制日志
myusql5.6版本之上的版本一定要先配置mysql_id = 134
[root@mysqlserver ~]# vim /etc/my.cnf
添加:
log_bin=mysql-bin
[root@mysqlserver ~]# systemctl restart mysqld
此时重启会报错,
查看错误日志信息:
#grep -i error /var/log/mysqld.log
由于是5.7版本,则必须在配置文件中添加:
server_id=134
此时再重新启动,显示没有问题。
错误日志存放位置:
[root@mysqlserver ~]# ls /var/lib/mysql
查看错误日志信息:
[root@mysqlserver ~]# mysqlbinlog
5.7版本信息已加密,查看需要进一步解密。
执行flush-logs或者重启服务,错误日志就会增加一个。
错误日志累计增加过多,只想保留最近的10条错误日志:
查看有哪些二进制日志文件:
mysql> show binary logs;
查看当前正在使用哪一个二进制错误日志文件:
mysql> show master status;
查看二进制内容:
mysql> show binlog events in 'mysql-bin.000013';
删除二进制日志:
严禁使用rm等命令直接删除日志文件,可能导致数据库的崩溃。
删除所有日志:
mysql> reset master;
删除到哪一个编号之前的:
mysql> purge master logs to 'mysql-bin.000013';
查看所有日志文件:
mysql> system ls /var/lib/mysql/mysql-bin*
删除二进制日志文件:
二进制日志文件不能直接删除的,如果使用rm等命令直接删除日志文件,可能导致数据库的崩溃。
必须使用命令PURGE删除日志,语法如下:PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }
做备份之前要打开的日志: