用MYSQL 5.7.9 作为ZABBIX 2.4.7 的监控数据库. 前段时间开启了慢查询日志, 后来发现慢查询日志膨胀到了700M 查看最后100条 大部分都是 0.1 秒的 后来想改, 以前是动态设置的 set global slow_query_log=1; 方式的 . 然后想直接用配置文件/etc/my.cnf 配慢查询 7 [mysqld] 8 9 # Remove leading # and set to the amount of RAM for the most important data 10 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. 11 innodb_buffer_pool_size = 128M 12 13 # Remove leading # to turn on a very important data integrity option: logging 14 # changes to the binary log between backups. 15 # log_bin 16 17 # These are commonly set, remove the # and set as required. 18 basedir = /LANMP/mysql 19 datadir = /MYSQLDATA/data 20 port = 3306 21 # server_id = ..... 22 socket = /tmp/mysql.sock 23 24 # Remove leading # to set options mainly useful for reporting servers. 25 # The server defaults are faster for transactions and fast SELECTs. 26 # Adjust sizes as needed, experiment to find the optimal values. 27 join_buffer_size = 128M 28 sort_buffer_size = 2M 29 read_rnd_buffer_size = 2M 30 31 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 32 33 character_set_server=utf8 34 init_connect='SET NAMES utf8' 35 slow_query_log = 1 36 slow_query_log_file = /MYSQLDATA/mysql_slow_query.log 37 long_query_time = 5 38 log_queries_not_using_indexes = ON 反复启动了好多次 service mysqld restart mysql> show variables like '%query%'; +------------------------------+---------------------------------+ | Variable_name | Value | +------------------------------+---------------------------------+ | binlog_rows_query_log_events | OFF | | ft_query_expansion_limit | 20 | | have_query_cache | YES | | long_query_time | 5.000000 | | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 1048576 | | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | slow_query_log | ON | | slow_query_log_file | /MYSQLDATA/mysql_slow_query.log | +------------------------------+---------------------------------+ 13 rows in set (0.00 sec) 老是OFF 状态 而其他的 LONG_QUERY_TIME 得到了改变 5秒 用动态方式设置 报错 mysql> set global slow_query_log=1; ERROR 29 (HY000): File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied) 对我已经把它给删了, 为傻不自己创建个? 只好自己touch 一个 还是报错 ? ps -ef |grep mysqld 发现 还有个mysql用户启动了mysql 看来 是用mysql用户读取慢查询日志的 用户权限问题啦 |