docker 启动mysql,无法正常启动,挂载配置不生效
如果你的 MySQL 配置文件位于 /data/mysql8.0.21/etc/mysql/my.cnf,你可以按照以下步骤将其挂载到 MySQL 容器中:
启动 MySQL 容器并挂载配置文件:
使用 -v 参数将自定义的配置文件挂载到容器中的 MySQL 配置文件路径 /path/to/etc/mysql/my.cnf。
docker run -d --name mysql-server -e MYSQL_ROOT_PASSWORD=your_password -v /path/to/mysql_data:/var/lib/mysql -v /path/to/mysql_files:/var/lib/mysql-files -v /path/to/etc/mysql/my.cnf:/etc/mysql/my.cnf -p 3308:3306 mysql:8.0.21 --secure-file-priv=/var/lib/mysql-files
这将启动 MySQL 容器,并将 /data/mysql8.0.21/etc/mysql/my.cnf 文件挂载到容器中的 /etc/mysql/my.cnf。
重启容器:
如果 MySQL 容器已经在运行,你可能需要重启容器使新的配置文件生效:
docker restart mysql-server
验证配置文件是否生效:
连接到 MySQL 容器,然后执行以下命令来查看 MySQL 的配置信息:
docker exec -it mysql-server mysql -uroot -p -e "SHOW VARIABLES LIKE 'server_id';"
这将显示 server_id 变量的值以及其他相关的配置信息,以确保新的配置文件已生效。
通过这些步骤,你应该能够成功将位于 /path/to/etc/mysql/my.cnf 的自定义 MySQL 配置文件挂载到容器中,并确保 MySQL 服务使用了你指定的配置选项。
提示
mysql: [Warning] World-writable config file '/etc/mysql/my.cnf' is ignored.
这个警告是因为 MySQL 不希望配置文件被设置为世界可写(world-writable)。为了解决这个问题,你可以尝试更改配置文件的权限,使其不再是世界可写的。你可以在主机上执行以下命令来更改文件权限:
chmod 644 /data/mysql8.0.21/etc/mysql/my.cnf
这将把 /data/mysql8.0.21/etc/mysql/my.cnf 文件的权限更改为 -rw-r--r--,即所有者可读写,但组和其他用户只能读取。
然后,你可以重新启动 MySQL 容器,确保配置文件被正确加载:
docker restart mysql-server
重新启动容器后,再次验证 MySQL 是否成功加载了配置文件:
docker exec -it mysql-server mysql -uroot -p -e "SHOW VARIABLES LIKE 'server_id';"
通过这些步骤,你应该能够解决 MySQL 发出的关于世界可写配置文件的警告,并确保自定义的配置文件被正确加载到 MySQL 容器中。
本文来自博客园,作者:Chuan_Chen,转载请注明原文链接:https://www.cnblogs.com/wangcc7/p/18269849