mysql 5.6 打开慢查询,Mysql新版本的慢查询配置和旧的版本不太一样。(转自向东兄弟的博文)

背景:Mysql新版本的慢查询配置和旧的版本不太一样,为此,特转下这这篇文章,以备案。

零、关闭mysql:
  1.        /usr/local/mysql/bin/mysqladmin -u root shutdown   

一、Mysql启动参数 -u root:
  1. /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/conf/my.cnf -uroot &   
  2. /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --basedir=/usr/local/mysql --datadir=/data/db/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/db/mysql/localhost.localdomain.err --open-files-limit=65535 --pid-file=/data/db/mysql/localhost.localdomain.pid --socket=/tmp/mysqld.sock --port=3306   


二、配置my.cnf如下:
  1. long_query_time=2   
  2. slow_query_log=1   
  3. slow_query_log_file=/data/db/mysql/localhost-xiyou-slowsql.lo   


mysql版本:
mysql> select version();
+------------+
| version()  |
+------------+
| 5.6.13-log |
+------------+
1 row in set (0.00 sec)

[root@mysql_multi ~]# vi /etc/my.cnf
【mysqld3307】
long_query_time=1
#slow_query_log
slow_query_log=1
#slow_query_log_file=/data/mysql/mysqldata3307/log/slow-query.log
#以前版本的参数格式跟5.6的不一致
slow_query_log_file=/data/mysql/mysqldata3307/log/slow-query.log
#将所有没有使用带索引的查询语句全部写到慢查询日志中
log_queries_not_using_indexes=1

对 3307 端口的mysql:

[root@mysql_multi ~]# mysqld_multi start 3307
[root@mysql_multi ~]# netstat -nlp|grep mysql
tcp        0      0 :::3306                     :::*                        LISTEN      20211/mysqld        
tcp        0      0 :::3307                     :::*                        LISTEN      18693/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     42309  20211/mysqld        /data/mysql/mysqldata3306/sock/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     69806  18693/mysqld        /data/mysql/mysqldata3307/sock/mysql.sock

root@localhost : mysql 01:00:16> show variables like '%slow%';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: mysql

+---------------------------+----------------------------------------------+
| Variable_name             | Value                                        |
+---------------------------+----------------------------------------------+
| log_slow_admin_statements | OFF                                          |
| log_slow_slave_statements | OFF                                          |
| slow_launch_time          | 2                                            |
| slow_query_log            | ON                                           |
| slow_query_log_file       | /data/mysql/mysqldata3307/log/slow-query.log |
+---------------------------+----------------------------------------------+
5 rows in set (0.00 sec)


root@localhost : mysql 01:03:44> show variables like '%index%';
+----------------------------------------+-------+
| Variable_name                          | Value |
+----------------------------------------+-------+
| eq_range_index_dive_limit              | 10    |
| innodb_adaptive_hash_index             | ON    |
| innodb_cmp_per_index_enabled           | OFF   |
| log_bin_index                          |       |
| log_queries_not_using_indexes          | ON    |
| log_throttle_queries_not_using_indexes | 0     |
| relay_log_index                        |       |
+----------------------------------------+-------+
7 rows in set (0.00 sec)

然后运行一个需要长时间才能执行完毕的sql,
select sleep(2);
使用mysqldumpslow 查看日志:
/data/mysql/mysqldata3307/log/slow-query.log (直接使用cat 进行查看也可以)

转自:http://blog.itpub.net/29291882/viewspace-1064074

实践如下:
一、
vi /usr/local/mysql/conf/my.cnf

slow_query_log=1
long_query_time = 2
slow_query_log_file=/data/db/mysql/localhost-slow.log
#将所有没有使用带索引的查询语句全部写到慢查询日志中
log_queries_not_using_indexes=1
#如果开启了log_queries_not_using_indexes选项,slow query日志会充满过多的垃圾日志记录,这些快且高效的全表扫描查询(表小)会冲掉真正有用的slow queries记录。比如select * from category这样的查询也会被记录下来。

二、
mysql> show variables like '%slow%';
+---------------------------+-----------------------------------+
| Variable_name             | Value                             |
+---------------------------+-----------------------------------+
| log_slow_admin_statements | OFF                               |
| log_slow_slave_statements | OFF                               |
| slow_launch_time          | 2                                 |
| slow_query_log            | ON                                |
| slow_query_log_file       | /data/db/mysql/localhost-slow.log |
+---------------------------+-----------------------------------+

三、
du -sh /data/db/mysql/localhost-slow.log
803M    /data/db/mysql/localhost-slow.log

四、
Mysql 测试配置文件是否正确 my.cnf,那个nginx 有-t,mysql呢?
一)这个没必要重启,直接 set @@global.slow_query_log=1;
二)起动一个新端口的副本测试,有道理。

mysql>  show variables like '%slow%';
+---------------------------+--------------------------------------------+
| Variable_name             | Value                                      |
+---------------------------+--------------------------------------------+
| log_slow_admin_statements | OFF                                        |
| log_slow_slave_statements | OFF                                        |
| slow_launch_time          | 2                                          |
| slow_query_log            | ON                                         |
| slow_query_log_file       | /data/db/mysql/localhost-xiyou-slowsql.log |
+---------------------------+--------------------------------------------
__________________________________________
mysql5.6和5.5中打开slow_query_log的方式有所改变:

mysql5.6.10关于慢查询的设置slow-query-log
前两天,刚把开发用的环境升级为2008R2,,所以想试试5.6.10的64位的数据库,是在mysql的官方下载的win32x64版本,一共有200多M。发现里面只有一个默认的my.ini文件,想进行优化试试,结果发现老是启动不了。后来发现,主要是这个关于慢查询的设置变了,之前是:
slow_query_log
long_query_time = 5
log-slow-queries=slow.log
现在必须要这种设置才行
slow_query_log=1
slow_query_log_file=slow.log
看来从5.6.* 可能已经全面取消了
log_slow_queries=slow.log这种写法了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值