MySQL开启普通查询日志,慢查询日志

需求

MySQL开启普通查询日志,慢查询日志


操作

1.命令行中以数据库的ROOT身份,登入mysql

mysql -uroot -p{密码}


2.查看当前所有有关log的设置

mysql> show variables like '%log%';

+-----------------------------------------+------------------------------+
| Variable_name                           | Value                        |
+-----------------------------------------+------------------------------+
| back_log                                | 50                           |
| binlog_cache_size                       | 32768                        |
| binlog_direct_non_transactional_updates | OFF                          |
| binlog_format                           | STATEMENT                    |
| binlog_stmt_cache_size                  | 32768                        |
| expire_logs_days                        | 10                           |
| general_log                             | ON                           |
| general_log_file                        | /var/lib/mysql/web3.log      |
| innodb_flush_log_at_trx_commit          | 1                            |
| innodb_locks_unsafe_for_binlog          | OFF                          |
| innodb_log_buffer_size                  | 8388608                      |
| innodb_log_file_size                    | 5242880                      |
| innodb_log_files_in_group               | 2                            |
| innodb_log_group_home_dir               | ./                           |
| innodb_mirrored_log_groups              | 1                            |
| log                                     | ON                           |
| log_bin                                 | OFF                          |
| log_bin_trust_function_creators         | OFF                          |
| log_error                               | /var/log/mysql/error.log     |
| log_output                              | FILE                         |
| log_queries_not_using_indexes           | OFF                          |
| log_slave_updates                       | OFF                          |
| log_slow_queries                        | ON                           |
| log_warnings                            | 1                            |
| max_binlog_cache_size                   | 18446744073709547520         |
| max_binlog_size                         | 104857600                    |
| max_binlog_stmt_cache_size              | 18446744073709547520         |
| max_relay_log_size                      | 0                            |
| relay_log                               |                              |
| relay_log_index                         |                              |
| relay_log_info_file                     | relay-log.info               |
| relay_log_purge                         | ON                           |
| relay_log_recovery                      | OFF                          |
| relay_log_space_limit                   | 0                            |
| slow_query_log                          | ON                           |
| slow_query_log_file                     | /var/lib/mysql/web3-slow.log |
| sql_log_bin                             | ON                           |
| sql_log_off                             | OFF                          |
| sync_binlog                             | 0                            |
| sync_relay_log                          | 0                            |
| sync_relay_log_info                     | 0                            |
+-----------------------------------------+------------------------------+
41 rows in set (0.00 sec)


3.开启普通查询语句的记录日志:

set global general_log = 'ON';

然后即可看到日志文件/var/lib/mysql/web3.log已经生成,并记录下所有的sql语句。

(general_log_file决定了日志文件位置)

---

需要关闭,需要set global general_log = 'OFF';


4.开启MySQL慢查询记录:

mysql> set GLOBAL slow_query_log = 'ON'; 

Query OK, 0 rows affected (0.01 sec)

然后就可以看到慢查询日志自动生成并记录所有的慢查询SQL。

但是,系统默认慢查询=10秒以上,怎么自定义为 1秒以上呢?

mysql> set GLOBAL long_query_time=1; 

Query OK, 0 rows affected (0.02 sec)

退出当前ROOT的登陆再进来,即可看到时间被修改了。

另外,slow_query_log_file是定义日志位置。



注意

以上操作仅供一次性使用,重启MySQL会被还原。

永久性生效需要修改my.cnf:

locate my.cnf

vi /etc/mysql/my.cnf

service mysql restart

具体修改的内容需要百度,应该是一样的key。


后遗症

如果你一直没有关掉general_log, general_log_file定义的日志文件将会变得非常大!

root@web3:/var/lib/mysql# du -sh ./*
8G	./itmagazine
624K	./forecast
35G	./web3.log
732K	./web3-slow.log
这个35G的log文件,是不是很给力?



更多

MYSQL SHOW VARIABLES简介

https://www.2cto.com/database/201108/100546.html


mysql中slow query log慢日志查询分析

https://www.cnblogs.com/musings/p/5913186.html




猜你喜欢

转载自blog.csdn.net/qq285744011/article/details/79619768
今日推荐