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
# 输入你设置的新密码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 感谢发布原创作品,程序园因你更精彩 热心回复! 谢谢分享,试用一下 用心讨论,共获提升! 收藏一下 不知道什么时候能用到 很好很强大我过来先占个楼 待编辑 yyds。多谢分享 谢谢分享,试用一下 喜欢鼓捣这些软件,现在用得少,谢谢分享! 东西不错很实用谢谢分享 过来提前占个楼 分享、互助 让互联网精神温暖你我 感谢分享 东西不错很实用谢谢分享 感谢分享,学习下。 前排留名,哈哈哈 不错,里面软件多更新就更好了 东西不错很实用谢谢分享 感谢分享
页:
[1]
2