mysql - the - unexpected server response while doing caching sha2 auth 99




無法加載身份驗證插件“caching_sha2_password” (17)

我將MySQL-8.0與MySQL Workbench連接並得到以下錯誤:

無法加載身份驗證插件'caching_sha2_password':dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2):找不到圖像

我也嘗試過使用其他客戶端工具。

對此有何解決方案?


- 打開MySQL命令行客戶端

- 使用新通行證創建新用戶

考慮到頂部bin文件夾路徑的示例,這是您需要在命令提示符中逐行運行的代碼:

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p    
current password...***  
CREATE USER 'nativeuser'@'localhost'  
IDENTIFIED WITH mysql_native_password BY 'new_password';

- 然後,您可以再次訪問Workbench(您應該能夠在創建新的localhost連接並使用新憑據開始使用該程序後執行此操作)。

使用上面提到的用戶名(本機用戶)設置新的本地主機連接,使用密碼登錄(new_password)

禮貌:由Career365團隊回答的UDEMY常見問題解答


下載8.0.11-rc的開發版本在mac上為我工作。 使用以下docker命令:

docker run --name mysql -p 3406:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql

你可以改變這樣的密碼加密。

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';


好的,浪費了很多時間,所以這是 2019年3月19日 的總結

如果您特意嘗試將Docker鏡像與 MySql 8+ 一起使用,然後使用 SequelPro 訪問在該docker容器上運行的數據庫,那麼您 就不 走運了。

請參閱 sequelpro issue 2699

我的設置是sequelpro 1.1.2使用docker desktop 2.0.3.0(mac-mojave),並嘗試使用mysql:latest(v8.0.15)。

正如其他人報導的那樣,使用mysql 5.7無需任何操作:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

當然,可以在docker上使用MySql 8+,在這種情況下(如果需要),此處提供的 caching_sha2_password 類型問題的其他答案確實有效。 但是sequelpro對於MySql 8+來說是不行的

最後,我放棄了sequelpro(2013-2014後面一位值得信賴的朋友),而是安裝了 DBeaver 。 一切都開箱即用。 對於碼頭工,我用過:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

您可以使用以下命令快速查看mysql數據庫:

docker exec -it mysql1 bash

mysql -u root -p

show databases;

如果你像我一樣在GitLab CI上收到此錯誤:只需從最新版本更改為5.7版本;)

# .gitlab-ci.yml

rspec:
  services:
    # - mysql:latest (I'm using latest version and it causes error)
    - mysql:5.7 #(then I've changed to this specific version and fix!)

對於那些使用Docker或Docker Compose的人,我遇到了這個錯誤,因為我沒有設置我的MySQL鏡像版本。 Docker會自動嘗試獲取最新版本8。

我將MySQL設置為5.7並重建了圖像,它正常工作:

version: '2'
services: 
  db:
   image: mysql:5.7

幾乎像上面的答案,但可能是在簡單的查詢中,我在我的Spring啟動應用程序中獲得此錯誤以及MySQL升級後的hibernate。 我們通過針對我們的數據庫運行以下查詢來創建新用戶。 我相信這是一個臨時的工作,使用sha256_password而不是最新和良好的身份驗證caching_sha2_password。

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';

我使用“ MySQL Web Installer ”在我的Windows 10 PC上安裝MySQL,並且在嘗試使用MySQL工作台進行連接時遇到了同樣的問題。 我通過從安裝程序窗口重新配置服務器來修復此問題。

單擊“重新配置”選項,將允許重新配置服務器。 單擊“下一步”,直到出現“身份驗證方法”。

在此選項卡上,使用第二個選項“使用傳統身份驗證方法(保留MySQL 5.x兼容性)”。

保持原樣,這就是我解決問題的方法。


我找到

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

沒有單獨工作。 我還需要設置

[mysqld]
    default_authentication_plugin=mysql_native_password

在運行PHP 7.0的Ubuntu 18.04上的/etc/mysql/mysql.conf.d/mysqld.cnf中


我遇到了同樣的問題,但Aman Aggarwal的答案對我來說並不適用於運行mysql 8.X的Docker容器。 我把它塞進了容器裡

docker exec -it CONTAINER_ID bash

然後以root身份登錄mysql

mysql --user=root --password

輸入root的密碼(默認為'root')最後運行:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

你們都準備好了。


打開我的sql命令promt:

然後輸入mysql密碼

最後使用:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

參考: https://.com/a/49228443/6097074 : https://.com/a/49228443/6097074

謝謝。


用於macOS的MySQLWorkbench 8.0.11解決了這個問題。 我可以在docker中運行與root密碼保護的mysql實例建立連接。


當使用的工具與MySQL8不兼容時,會出現此錯誤,請嘗試更新到最新版本的MySQL Workbench for MySQL8


這是在Windows 10上安裝MySQL 8.0之後適合我的解決方案。

假設MySQL用戶名是 root ,密碼是 admin

打開命令提示符並輸入以下命令:

cd C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

ALTER USER'root'@'localhost'IDENTIFIED WITH mysql_native_password BY'admin'


這是我在docker-compose中的數據庫定義:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

相關的線路有 入口點

構建完成後,您可以使用以下命令進行測試:

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

對於Windows 10: 打開命令提示符

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)

mysql> exit

或者,您可以更改 my.ini 配置,如下所示:

的[mysqld]

default_authentication_plugin = mysql_native_password

重新啟動MySQL服務器並再次打開Workbench。





mysql-8.0