docker基於mysql鏡像構建mysql容器忘記密碼解決辦法


環境:

[root@master-106 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@master-106 ~]# docker --version
Docker version 19.03.13, build 4484c46d9d
MySQL 5.7.31

# 進入mysql容器
[root@master-106 ~]# docker ps|grep mysql
05759803adb9        mysql:5.7           "docker-entrypoint.s…"   6 weeks ago         Up 4 minutes        3306/tcp, 33060/tcp                        wordpress_db_1

[root@master-106 ~]# docker exec -it 05759803adb9 /bin/bash

# 更新apt
apt-get update
# 安裝vim, 默認mysql鏡像中沒有安裝vi或vim
apt-get install vim

# 編輯mysql配置文件
root@05759803adb9:/# vim /etc/mysql/conf.d/docker.cnf
# 添加如下一行
skip-grant-tables
# 重啟數據庫
service mysql restart

# 重新進入容器,登錄mysql
[root@master-106 ~]# docker exec -it 05759803adb9 /bin/bash
root@05759803adb9:/# mysql -uroot -p
Enter password:   # 直接回車

mysql> use mysql;
# mysql 5.7之前版本
update user set authentication_string=password('新密碼') where user="root";
# mysql 5.7之后版本
update user set authentication_string=password('新密碼') where user="root";
# 退出數據庫
mysql> exit

# 刪除剛才在配置文件中添加的一行
# /etc/mysql/conf.d/docker.cnf 
skip-grant-tables

# 重啟數據庫
service mysql restart

# 重新進入容器,登錄mysql使用新密碼驗證

[root@master-106 ~]# docker exec -it 05759803adb9 /bin/bash
root@05759803adb9:/# mysql -uroot -p123456
# 結果是ok的.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM