環境:
[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的.