Mysql慢查询和日志
错误日志:
错误日志是一个文本文件。
错误日志记录了MySQL Server每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息。
可以用–log-error[=file_name]选项来开启mysql错误日志,该选项指定mysqld保存错误日志文件的位置。
对于指定–log-error[=file_name]选项而未给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。
在mysqld正在写入错误日志到文件时,执行FLUSH LOGS 或者mysqladmin flush-logs时,服务器将关闭并重新打开日志文件。
建议在flush之前手动重命名错误日志文件,之后mysql服务将使用原始文件名打开一个新文件。
以下为错误日志备份方法:
shell> mv host_name.err host_name.err-old
shell> mysqladmin flush-logs
shell> mv host_name.err-old backup-directory
日志路径:
/var/log/mysqld.log
Mysql慢日志
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述慢日志日志。
安装Mysql准备环境
yum -y install mariadb mariadb-server
systemctl start mariadb
配置慢日志:
MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。
主要作用是记录一些查询耗时比较长的SQL语句,便于我们后期对SQL语句的优化
默认慢日志没有启用
查询慢日志是否开启:
mysql> show variables like 'slow_query_log%';
+---------------------+---------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/run/mysqld/mysqld-slow.log | 日志存放路径
+---------------------+---------------------------------+
第一种:临时启动慢日志
mysql> set global slow_query_log = ON;
Query OK, 0 rows affected (0.00 sec)
第二种:永久开启慢日志
修改配置文件my.cnf写入我们的慢日志的命令
vim /etc/my.cnf
slow_query_log=1
slow_launch_time=1
slow_query_log_file = /var/lib/mysql/mysql_slow.log
说明:
slow_query_log 慢查询开启状态
long_query_time 查询超过多少秒才记录
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
配置好后,重新启动 MySQL 即可。
systemctl restart mariadb
查询日志查看是否开启
show variables like 'slow_query_log%';