登录MySQL客户端时报错:mysql: [ERROR] unknown variable ‘slow_query_log=on‘.

MySQL版本:8.0

问题复现:

需求:
在Docker容器中启动MySQL,并修改其MySQL的配置文件,使得它能够检测慢查询。

  •    Docker中启动MySQL
#mysql-data卷,存储sql数据
#mysql-conf卷,映射配置文件

docker run --name <container-name> -e MYSQL_ROOT_PASSWORD=<your-password> -v mysql-data:/var/lib/mysql -v mysql-conf:/etc -d mysql:<version>
  •  修改配置项

卷映射默认存放目录:/var/lib/docker/volumes/<volume-name>

#开启慢查询
slow_query_log = on
#记录慢查询日志
slow-query-log-file = /var/lib/mysql/log/slow-query.log
#指定慢查询的阈值:2分钟
long_query_time = 2

 

  • 登录MySQL客户端
#8d5是MySQL所在容器ID缩写
docker exec -it 8d5  mysql -u root -p

      报错!!!

 解决方案:

修改my.cnf文件权限

#不安全且不能解决问题
chmod -R 777 my.cnf

 出现了新的问题:
mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.

当然,这只是个警告。

  • 重新启动容器
  • 登录MySQL客户端【成功】
  • 查看配置是否生效
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';

 

可以看到都没有生效,所以我又将权限修改了回去。

chmod -R 644 my.cnf
#查看权限
ls -l my.cnf
#输出:-rw-r--r-- 1 root root 1496 Sep 28 15:14 my.cnf

修改变量作用域

参考了下述帖子:
linux - Unknown variable 'slow_query_log=1' - Server Fault

#开启慢查询
slow_query_log = on
#记录慢查询日志
slow-query-log-file = /var/lib/mysql/log/slow-query.log
#指定慢查询的阈值:2分钟
long_query_time = 2

  • 重新启动容器 
docker restart 8d5
  •   登录MySQL客户端
#8d5是MySQL所在容器ID缩写
docker exec -it 8d5  mysql -u root -p

  • 查看配置是否生效
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';

 

完美解决。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码冬梅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值