ky818smKy818sm  2025-11-16 07:49 旷野小站 隐藏边栏 |   抢沙发  5 
文章评分 0 次,平均分 0.0

为什么需要密码

1. 容器重启时会重新初始化

如果删除密码环境变量,当 MySQL 容器重启或重建时:

  • 不会设置 root 密码(安全风险)
  • 不会自动创建数据库和用户
  • 可能导致数据不一致

2. 数据持久化不包含用户信息

虽然数据文件 (./mysql-wordpress2/data) 是持久化的,但:

  • ✅ 数据库数据会保留
  • ✅ 表结构会保留
  • ❌ 用户权限信息也会保留
  • ❌ 但容器初始化脚本不会再次运行

3. 安全风险

没有 root 密码的 MySQL 容器存在严重安全风险。

正确的做法

方案1:使用 Docker Secrets(生产环境推荐)


mysql-wordpress2:
  image: mysql:8.0
  container_name: mysql-wordpress2
  environment:
    MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
    MYSQL_DATABASE: dl.123ppp.com
    MYSQL_USER: dl.123ppp.com
    MYSQL_PASSWORD_FILE: /run/secrets/mysql_user_password
  volumes:
    - ./mysql-wordpress2/data:/var/lib/mysql
  secrets:
    - mysql_root_password
    - mysql_user_password

secrets:
  mysql_root_password:
    file: ./secrets/mysql_root_password.txt
  mysql_user_password:
    file: ./secrets/mysql_user_password.txt

方案2:使用环境变量文件

创建 .env 文件:

# .env 文件
MYSQL_ROOT_PASSWORD=jk
MYSQL_PASSWORD=jk

然后在 docker-compose.yml 中引用:

mysql-wordpress2:
  image: mysql:8.0
  environment:
    MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    MYSQL_DATABASE: dl.123ppp.com
    MYSQL_USER: dl.123ppp.com
    MYSQL_PASSWORD: ${MYSQL_PASSWORD}

方案3:首次运行后注释掉(不推荐)

mysql-wordpress2:
  image: mysql:8.0
  container_name: mysql-wordpress2
  # environment:
  #   MYSQL_ROOT_PASSWORD: jk
  #   MYSQL_DATABASE: dl.123ppp.com
  #   MYSQL_USER: dl.123ppp.com
  #   MYSQL_PASSWORD: jk
  volumes:
    - ./mysql-wordpress2/data:/var/lib/mysql

风险:如果容器被删除重建,所有用户和权限都会丢失。

验证当前状态
你可以检查数据是否已初始化:


# 查看数据库是否已存在
docker exec -it mysql-wordpress2 mysql -uroot -pjk -e "SHOW DATABASES;"

# 查看用户权限
docker exec -it mysql-wordpress2 mysql -uroot -pjk -e "SELECT user, host FROM mysql.user;"

建议
保留密码配置,但可以考虑:

  1. 使用 .env 文件管理密码
  2. 将 .env 文件加入 .gitignore
  3. 定期备份数据库

这样既安全又便于维护。
.env 文件应该放在 docker-compose.yml 的同一目录下。

两个mysql服务设置不同的密码

如果有两个mysql服务需要设置不同的密码,就需要为每个服务设置不同的环境变量名。

声明:本站许多内容均从网上收集整理,若有内容侵犯到您的权益,请通过邮件【6167555@qq.com】联系本站,我们将及时删除!

有问题请点我联系站长

「点点赞赏,手留余香」
HIDE

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享