docker mysql修改root賬號密碼並賦予權限

最近碰到程序員大離職,我並接下瞭別人的爛攤子。

修改docker中mysql的root賬戶的賬號密碼

所以記錄一下

開始

登陸CentOs linux服務器後

docker ps        //查看docker鏡像

進入鏡像mysql鏡像內部

 docker exec -it 鏡像id或者鏡像別名   /bin/bash   //進入docker內部鏡像

安裝vim

因為docker鏡像內部沒有帶vim命令,所以需要手動安裝,也可以利用docker cp命令從宿主機中復制過去 

apt-get update
apt-get install vim

編輯配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

需要加入“skip-grant-tables”  按i     cv加入"skip-grant-tables"     按esc   然後:wq!

 保存退出

exit    # 退出容器

重啟mysql容器

docker restart mysql 

再次進入容器

docker exec -it mysql bash

登錄 mysql(無需密碼)

mysql -uroot

更新權限

flush privileges;

修改密碼

alter user 'root'@'localhost' identified by '123456';

退出mysql

exit

註釋“skip-grant-tables” 

 需要註釋“skip-grant-tables”  按i  按esc   然後:wq!

 退出容器

exit

重啟容器

docker restart mysql

 如果內部能訪問,Navicat等訪問不瞭,那麼執行把mysql權限開放

錯誤:ERROR 1130: Host 'ip' is not allowed to connect to thisMySQL serve

原因:被連接的數據不允許使用 ip 訪問,隻允許是用 localhost;

進入mysql鏡像

 docker exec -it 鏡像id或者鏡像別名   /bin/bash   //進入docker內部鏡像

登陸mysql 

mysql -u root -p     輸入剛剛修改的密碼
mysql>use mysql;

mysql>select 'host' from user where user='root';

mysql>update user set host = '%' where user ='root';

mysql>flush privileges;

mysql>select 'host'   from user where user='root';

如果還是不行那就是有多個root權限 更新權限

update user set password=password("root") where user="root"; 如果報已有主鍵id

那就刪除掉localhost

到此這篇關於docker mysql修改root賬號密碼並賦予權限的文章就介紹到這瞭,更多相關docker mysql修改root 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: