首頁 > 軟體

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

2022-07-06 14:01:52

最近碰到程式設計師大離職,我並接下了別人的爛攤子。

修改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 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com