MySQL是一个开源的关系型数据库管理系统,它可以在不同的操作系统中运行。MySQL提供了多种日志记录工具,使得数据库管理员可以更好地了解MySQL数据库的运行情况。
本文介绍了MySQL日志设置及查看方法,包括以下内容:
设置MySQL日志
General Query Log
General Query Log 是 MySQL 记录所有 SQL 语句执行时的日志。这种方法适合于在开发和测试环境中进行调试,但在生产环境中可能会导致性能问题。要启用 General Query Log ,请按照以下步骤进行:
- 打开 MySQL 配置文件 my.cnf,以下为在 Ubuntu 16.04 中配置文件的位置:
/etc/mysql/my.cnf
- 在文件中找到以下行:
# general_log_file = /var/log/mysql/mysql.log
# general_log = 1
- 解除注释和修改 general_log 和 general_log_file 配置项。如果 general_log 的值为 1,表示启用了这种类型的日志记录。如果 general_log_file 的值未指定或为空,则将日志记录到默认位置:/var/log/mysql/mysql.log。
如下为启用 General Query Log 的示例:
general_log_file=/var/log/mysql/mysql.log
general_log=1
- 重启 MySQL 服务使其重新加载配置文件:
sudo service mysql restart
Slow Query Log
Slow Query Log 主要用于记录耗时较长的查询,以便优化查询语句。启用 Slow Query Log 的步骤如下:
- 修改 MySQL 配置文件 my.cnf,以下为在 Ubuntu 16.04 中配置文件的位置:
/etc/mysql/my.cnf
- 查找和修改以下配置项的值。请确保值未以注释的方式进行:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
slow_query_log
的值为 1,表示启用 Slow Query Log;slow_query_log_file
指定了 Slow Query Log 文件的位置;long_query_time
是一个阈值,表示运行时间超过该阈值(以秒为单位)的查询将被记录到 Slow Query Log 中。
如下为启用 Slow Query Log 的示例:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
- 重启 MySQL 服务才能使配置生效:
sudo service mysql restart
查看MySQL日志
General Query Log
要查看 General Query Log 的日志文件,可通过以下两种方式来打开日志文件:
- 在终端上使用
cat
命令:
sudo cat /var/log/mysql/mysql.log
- 如果您想通过 MySQL 终端直接查看 General Query Log,请执行以下命令:
mysql> set global general_log = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like '%general_log%';
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | ON |
| general_log_file | /var/log/mysql/mysql.log |
+------------------+--------------------------+
2 rows in set (0.00 sec)
mysql> select * from sample_table limit 0,10;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | User 1 |
| 2 | User 2 |
| 3 | User 3 |
| 4 | User 4 |
| 5 | User 5 |
| 6 | User 6 |
| 7 | User 7 |
| 8 | User 8 |
| 9 | User 9 |
| 10 | User 10 |
+----+-------------------------+
10 rows in set (0.01 sec)
Slow Query Log
要查看 Slow Query Log 文件,可以使用 mysqldumpslow
命令或通过以下方式打开日志文件:
- 在终端上使用
cat
命令:
sudo cat /var/log/mysql/mysql-slow.log
- 在 MySQL 终端上执行以下命令查看慢查询日志:
mysql> show variables like '%slow_query_log%';
+---------------------+----------------------------+
| Variable_name | Value |
+---------------------+----------------------------+
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql/mysql-slow.log |
+---------------------+----------------------------+
2 rows in set (0.02 sec)
mysql> select * from sample_table where id > 1000;
Empty set (1.38 sec)
mysql> exit;
Bye
以上为设置和查看 MySQL 日志的攻略,请根据自己的需要进行配置和使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL日志设置及查看方法 - Python技术站