[英]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.