施婉秀 发表于 2025-12-29 00:05:02

Docker中mysql容器忘记root密码后重置密码方法

Docker中mysql容器忘记root密码后重置密码方法

之前部署了一个mysql的docker容器,但是把root账号的密码忘了,通过chatGPT给的方法,成功在保留原数据的情况下重置密码。现在记录一下,仅供参考。
步骤:
1)停止原容器。
2)利用同样的挂载目录新建一个临时容器,使用--skip-grant-tables跳过权限验证。
3)进入临时容器重置root密码。
4)停掉临时容器,重启原容器
1.停止原容器并启动一个临时容器(跳过权限验证)

1.1 停止原容器

docker stop mysql1.2 以跳过权限验证的方式启动临时容器

docker run -d \
--name mysql-reset \
--hostname mysql-reset \
--network top_cloud_service_bridge \
-v /home/top/mysql-data/mysql:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
dji/mysql:latest \
--skip-grant-tables \
--lower_case_table_names=1--skip-grant-tables:跳过权限验证,允许无密码登录。
(此处临时容器和原容器使用相同的挂载目录)
2.进入临时容器,重置root密码

docker exec -it mysql-reset mysql -u root进入 MySQL 后,执行:
UPDATE mysql.user
SET authentication_string = ''
WHERE user = 'root';-- 先清空(避免旧哈希干扰)

-- 然后用 ALTER USER 生效(此时 FLUSH PRIVILEGES 后已可识别用户)
FLUSH PRIVILEGES;

-- 再执行下面的代码更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';


FLUSH PRIVILEGES;
EXIT;3. 停掉临时容器,重启原容器

docker stop mysql-reset
docker rm mysql-reset

# 用原命令重启(密码已更新,正常启动)
docker start mysql验证新密码:
docker exec -it mine-drone-mysql mysql -u root -p
# 输入你设置的新密码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

廖彗云 发表于 2026-1-14 04:29:16

感谢发布原创作品,程序园因你更精彩

喳谍 发表于 2026-1-19 01:45:04

热心回复!

阎怀慕 发表于 2026-1-20 15:10:09

谢谢分享,试用一下

孜稞 发表于 2026-1-21 22:49:51

用心讨论,共获提升!

匣卒 发表于 2026-1-22 09:00:22

收藏一下   不知道什么时候能用到

蓝娅萍 发表于 2026-1-23 06:55:45

很好很强大我过来先占个楼 待编辑

寿爹座 发表于 2026-1-27 08:46:18

yyds。多谢分享

穆望 发表于 2026-1-28 02:39:01

谢谢分享,试用一下

铵滔 发表于 2026-1-29 05:09:51

喜欢鼓捣这些软件,现在用得少,谢谢分享!

骆贵 发表于 2026-1-31 22:30:25

东西不错很实用谢谢分享

崔瑜然 发表于 2026-2-1 20:15:15

过来提前占个楼

府扔影 发表于 2026-2-6 04:21:34

分享、互助 让互联网精神温暖你我

赊朗爆 发表于 2026-2-6 07:23:03

感谢分享

敛饺乖 发表于 2026-2-10 14:47:15

东西不错很实用谢谢分享

呵烘稿 发表于 2026-2-10 19:12:41

感谢分享,学习下。

胁冉右 发表于 2026-2-11 06:08:49

前排留名,哈哈哈

益竹月 发表于 2026-2-11 14:19:16

不错,里面软件多更新就更好了

山真柄 发表于 2026-2-11 21:11:52

东西不错很实用谢谢分享

松菊 发表于 2026-2-13 20:59:30

感谢分享
页: [1] 2
查看完整版本: Docker中mysql容器忘记root密码后重置密码方法