在使用 MySQL 镜像(如 Docker 官方镜像 mysql:8.0)时,设置 root 用户密码是初始化过程中的关键步骤。如果不正确配置,可能导致无法登录或安全风险。以下是详细的设置方法。
使用环境变量设置 root 密码
最常用且推荐的方式是在运行容器时通过 MYSQL_ROOT_PASSWORD 环境变量指定 root 密码。
启动命令示例:docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_secure_password -p 3306:3306 mysql:8.0
说明: -e MYSQL_ROOT_PASSWORD=your_secure_password:设置 root 用户的登录密码。 若不设置该变量,MySQL 会尝试生成临时密码并输出到日志中(适用于首次初始化)。 生产环境中必须设置强密码。初始化时自定义 SQL 脚本修改密码
如果需要更灵活地控制用户权限或重置密码,可通过挂载初始化脚本实现。
操作步骤: 创建一个 SQL 文件,例如 init.sql:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
docker run -d --name mysql-container \
-e MYSQL_ROOT_PASSWORD=initial_password \
-v /path/to/init.sql:/docker-entrypoint-initdb.d/init.sql \
-p 3306:3306 mysql:8.0
