連線docker裡面的mysql失敗解決方法

2022-09-25 04:21:10 字數 1294 閱讀 4267

場景:在虛擬機器的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...