欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Docker:Mysql 8.0 解决了 sql_mode = only_full_group_by 问题

最编程 2024-10-19 10:47:50
...

前言

        如标题所言,我在centos上使用docker部署了mysql8.0的容器并运行,但长时间后发现该mysql的一些配置需要变更。

        为了解决sql_mode = only_full_group_by问题,我决定更新mysql的配置文件。

        之前有讲过mysql5.7的安装方案,里面有解决5.7版本该问题的配置,与8.0有些许不同

         centos安装mysql 5.7版本_centos 安装mysql5.7-****博客

解决方案 

        备份容器内的mysql配置文件

docker cp mysql:/etc/my.cnf /opt/my.cnf_2024101801

        在原配置文件上构建新的配置文件 

         cp复制原配置文件为my.cnf后,在[mysqld]配置下新增sql_mode属性

# 8.0版本可用
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

        如果是5.7版本的话使用这个

# 仅供5.7版本使用
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

        将新的配置文件移回去

docker cp /opt/my.cnf mysql:/etc/my.cnf

        后续操作 

         尝试重启mysql容器

docker restart mysql

         如果重启出现问题就把原配置文件移回去重启,从长计议