MySQL开启普通查询日志,慢查询日志
2018-03-20 00:33
288 查看
需求
MySQL开启普通查询日志,慢查询日志操作
1.命令行中以数据库的ROOT身份,登入mysql
mysql -uroot -p{密码}2.查看当前所有有关log的设置
mysql> show variables like '%log%';+-----------------------------------------+------------------------------+| Variable_name | Value |
+-----------------------------------------+------------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
4000
| 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
相关文章推荐
- Mysql----mysql开启二进制日志和普通查询日志
- mysql 数据库优化 慢查询日志的开启
- mysql开启慢查询日志及查询--windows
- linux上开启和分析mysql慢查询日志
- mysql-普通查询(General Query)慢查询(Slow Query)相关日志配置
- mysql5.6.20开启慢查询日志以及创建索引优化慢查询
- 快速开启MySQL慢日志查询的方法
- mysql 开启慢查询 清空slow_log日志或者slow_log表
- Mysql开启慢查询日志
- 如何开启 mysql 慢查询日志
- Windows + Linux Mysql慢查询日志开启的方法
- mysql开启慢查询日志
- 如何开启MySQL慢查询日志
- MySQL慢查询日志开启分析详解介绍
- MySQL开启慢查询日志时报Errcode: 13 的解决方法
- mysql(slow-query) 快速开启慢日志查询的方法
- windows下mysql日志开启与查询
- mysql 开启查询日志
- mysql开启binlog日志和慢查询日志