当前位置: 代码网 > 服务器>服务器>云虚拟主机 > Docker下MySQL配置文件不生效的解决方法(超全面!)

Docker下MySQL配置文件不生效的解决方法(超全面!)

2024年10月28日 云虚拟主机 我要评论
问题描述在docker中运行mysql并遇到需要调整配置的情况时,比如想要关闭only_full_group_by的严格模式,我们可以通过以下步骤来实现sql_mode的修改:以下是解决此类问题的步骤

问题描述

在docker中运行mysql并遇到需要调整配置的情况时,比如想要关闭only_full_group_by的严格模式,我们可以通过以下步骤来实现sql_mode的修改:以下是解决此类问题的步骤和思路。

解决思路

1. 查看mysql配置文件位置

首先,需要确定mysql的配置文件在容器中的位置。

  • 查看配置文件的默认位置: linux中mysql的配置文件通常位于/etc/mysql//etc/mysql/mysql.conf.d//etc/my.cnf。你可以直接查看这些目录:
ls /etc/mysql/
ls /etc/mysql/mysql.conf.d/
cat /etc/my.cnf

my.cnf配置详解

my.cnf是mysql的主配置文件,其中包含了数据库服务器的各种设置。my.cnf文件中可能包含!include指令,该指令用于包含其他配置文件或配置节。

  • !include /path/to/other.cnf:这条指令告诉mysql服务器包含另一个配置文件,使得配置更加模块化。

重要!!!!需要排查所有可能的配置文件,确认是否有其他配置文件修改或覆盖了sql_mode

2. 确认docker映射的文件(本人就在这一步踩坑了!!!)

如果在宿主机上修改了配置文件,但未将其映射到docker容器中,修改将不会生效。检查docker容器映射的文件:

docker inspect [容器id或名称]

重要!!!!修改的配置文件都是宿主机上的/etc/my.cnf,但是并没有将其映射到docker容器中,所以一直失效。

查看容器的详细信息,确认卷挂载情况。

3. 将宿主机上的mysql配置文件映射到docker中

要将宿主机上的mysql配置文件映射到docker容器中,你需要执行以下步骤:

  • 准备宿主机上的配置文件: 确保你的宿主机上有一个mysql的配置文件,比如 my_custom.cnf。你可以将这个文件放置在任何你喜欢的目录下,比如 /etc/mysql/

  • 创建docker容器时挂载配置文件: 使用 docker run 命令来启动一个新的容器,并使用 -v 参数来映射宿主机上的配置文件到容器内部。例如:

docker run -v /etc/mysql/my_custom.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf:ro \
  -e mysql_root_password=my-secret-pw \
  --name my-mysql-container \
  mysql:tag
  • 在这个命令中:

  • -v /etc/mysql/my_custom.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf:ro 参数将宿主机上的 /etc/mysql/my_custom.cnf 文件挂载到容器的 /etc/mysql/mysql.conf.d/mysqld.cnf 位置,并设置为只读(:ro)。

4. 修改配置文件

修改配置文件时,确保更改放在正确的配置节下。例如,修改sql_mode应该在[mysqld]节下:

[mysqld]
sql_mode = no_auto_value_on_zero,strict_trans_tables,error_for_division_by_zero,no_auto_create_user,no_engine_substitution

5. 重启docker容器

修改配置文件后,需要重启docker容器以使更改生效:

docker ps 
docker restart [容器id或名称]

6. 验证配置

进入mysql并验证sql_mode

docker exec -it [容器id或名称] mysql -uroot -p

登录mysql后,执行:

show variables like 'sql_mode';

ok,完美解决

注意事项

  • 确保修改的配置文件已正确映射到docker容器。
  • 修改配置文件时,注意语法正确性,避免引入新的错误。
  • 重启容器以应用新的配置。
  • 验证配置更改后的结果,确保mysql服务器按预期运行。

通过以上步骤,你可以有效地解决docker中mysql配置不生效的问题,并根据需要调整sql_mode或其他配置。

到此这篇关于docker下mysql配置文件不生效的解决方法(超全面!)的文章就介绍到这了,更多相关docker mysql配置不生效内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com