如果MySQL运行在Docker容器中,修改MySQL密码的方法稍有不同。以下是如何在Docker中修改MySQL密码的步骤:
方法1:使用MySQL命令行工具
1. 找到MySQL容器的ID或者名字:
docker ps
2. 进入MySQL容器:
docker exec -it <container_id_or_name> bash
<container_id_or_name> 替换为你自己的容器id
3. 登录MySQL:
mysql -u root -p
4. 输入当前的root密码:
图中我是放一起执行的,密码输入部分默认是不显示的,并且要注意 'root'@'localhost' 是表示只允许在本机即本地服务器上登录访问,如果要在客户端可以登录数据库,需要创建新的mysql用户,新的授权才行,下一章会讲。
5. 修改密码(MySQL 5.7及以上版本):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
6. 刷新权限:
FLUSH PRIVILEGES;
7. 退出MySQL:
exit
8. 退出容器:
exit
9. 重启容器(可选)
docker restart <container_id_or_name>
<container_id_or_name> 替换为你自己的容器id
方法2:使用环境变量重置root密码
如果在创建Docker容器时未指定root密码,您可以通过环境变量来重置root密码:
-
停止当前MySQL容器:
docker stop <container_id_or_name>
<container_id_or_name> 替换为你自己的容器id
-
重新启动MySQL容器并设置新密码:
docker run --name <container_name> -e MYSQL_ROOT_PASSWORD=new_password -d mysql:latest
请注意,使用这种方法会重新创建容器并可能导致数据丢失,建议在操作前备份数据。
方法3:通过Docker Compose修改密码
如果您使用Docker Compose管理MySQL容器,可以直接在docker-compose.yml
文件中修改环境变量:
-
编辑
docker-compose.yml
文件,将MYSQL_ROOT_PASSWORD
修改为新密码:version: '3.1'services:db:image: mysql:latestrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: new_password
-
重新启动Docker Compose服务:
docker-compose down docker-compose up -d
下一章
Docker容器 为MySQL创建新用户和授权-CSDN博客