場景:在虛擬機器的docker容器中安裝latest版本的mysql之後,在宿主機中使用n**icat連線虛擬機器中的mysql出現下圖報錯:
2059 : authentication plugin 『caching_sha2_password' cannot be loaded:
解決辦法:
1、首先docker ps命令檢視正在執行的容器,確保我們想要連線的mysql已經啟動,如果沒啟動使用docker start命令啟www.cppcns.com動(下圖檢視結果表示已經啟動了乙個mysql)
2、接著執行docker exec -it b30062adc08c /bin/bash進入mysql容器
3、再接著輸入mysql -u root -p命令,然後輸入自己的密碼,最後輸入更新密碼語句:
alter user 'root'@'%' identified with mysql_native_password by '123程式設計客棧456';
4、最後重啟mysql再使用n**icat連線即可成功
補充知識:本地遠端連線docker中的mysql報錯的解決辦法(1251)
錯誤如下:
原因:mysql 8.0 預設使用 caching_sha2_password 身份驗證機制;客戶端不支援新的加密方式
解決方案:修改使用者(root)的加密方式
1.進入mysql容器內部,在docker中輸入
docker exec -it mysqlwww.cppcns.com02 bash
2.登入mysqwww.cppcns.coml
mysql -u root -p
如圖所示輸入123456回車即可
3.設定使用者配置項
(1)檢視使用者資訊
select host,user,plugin,authentication_string from mysql.user;
(2)修改加密方式
alter user ''@'%' identified with mysql_native_password by '123456'; //123456是mysql的登入密碼
(3)再次檢視使用者資訊
select host,user,plugin,authentication_string from mysql.user;
(4)再次使用n**icate等資料庫軟體連線,成功
(5)補充:如果要正常退出不關閉容器,可以通過按ctrl+p+q進行退出容器
從mysql中退出容器:ctrl+d,按兩次
本文標題: 連線docker裡面的mysql失敗解決方法
本文位址:
Python操作docker裡面的redis
使用操作命令借助subprocess模組進行操作 encoding utf 8 import subprocess defcmd command subp subprocess.popen command,shell true stdout subprocess.pipe,stderr subpro...
docker裡面的容器資料卷
講一下容器的資料卷是幹什麼的 就是為了實現主機和容器資料的共享 我們剛開始一定要先啟動docker服務 啟動docker服務 systemctl start docker建立容器資料卷 docker run it v nihaoshijie nihaoshijiecontainer centos b...
docker 搭建nacos並連線mysql資料庫
最近有在寫自己的腳手架專案,所以需要乙個配置中心。也可以用spring cloud的config bus實現,但是自己更熟悉nacos動態配置的使用,所以就自己用docker搭建乙個。因為我需要使用docker搭建。對於配置的儲存希望在另外乙個docker搭建的資料庫上,不可避免的不能用簡單的直接d...