簡體   English   中英

新的 Laravel 安裝(帶 Sail)具有未知的 MySQL 身份驗證方法

[英]New Laravel Install (with Sail) has unknown auth method with MySQL

我已經閱讀了許多討論 MySql 8 身份驗證問題的問題,但是我的問題仍然存在。 我刪除了所有 docker 容器並創建了一個新的 Laravel 應用程序,這就是發生的事情。

curl -s "https://laravel.build/example-app" | bash

上面的命令按預期安裝了應用程序。

cd my-app
./vendor/bin/sail up

上面的命令安裝了 docker 鏡像並啟動它們。 當我轉到 http://localhost 時,我可以看到我的應用程序正在運行,我可以使用默認用戶名(sail)和密碼(密碼)從 MySql Workbench 訪問 MySql。

php artisan migrate

上面的命令給出了如下錯誤信息。

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known [...]

在 Laravel 的 env 文件中,我將 DB_HOST 的值更新為 127.0.0.1,然后再次嘗試該命令。

php artisan migrate

上面的命令這次給出了不同的錯誤消息。

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client [...]

google了一下,我以root身份訪問MySql ,嘗試修改sail用戶的認證方式,如下。

ALTER USER 'sail'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 

上面的命令給出如下錯誤信息。

ERROR 1396 (HY000): Operation ALTER USER failed for 'sail'@'localhost'

我從 MySql Workbench 和 MySql 容器的命令行嘗試了這個。 我嘗試刷新特權,但這沒有幫助。

然后我嘗試修改 root 用戶的身份驗證方法。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 

這工作得很好。 但是,我隨后在我的應用程序中將用戶更新為 root,刷新權限,並再次運行遷移,結果收到相同的錯誤消息。

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client [...]

Laravel 版本為 8.48.1,MySql 版本為 8.0.25。

如何從我的應用程序訪問 MySql?

結果證明這非常簡單。

當您使用 Sail 執行工匠命令時,您需要以“sail”開頭。 運行上述遷移的正確方法是:

./vendor/bin/sail artisan migrate

更多細節在這里: https : //laravel.com/docs/8.x/sail#executing-artisan-commands

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM