[英]Migration errors in laravel
我正在嘗試將表遷移到laravel中名為kokodb的數據庫。 但是,我不斷收到此錯誤:
SQLSTATE [HY000] [2054]服務器請求客戶端未知的身份驗證方法(SQL:從information_schema.tables中選擇*,其中table_schema = kokodb,table_name =遷移)
這是我的環境文件:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=kokodb
DB_USERNAME=*****
DB_PASSWORD=*****
這是database.php代碼:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'kokodb'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'ZAQ!2wsx'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
該錯誤的可能解決方法是什么?
對我來說,實際上在工作區容器中運行artisan命令可以解決我遇到的相同問題。 簽出Laravel運行工匠命令。
並在config / database.php的末尾添加以下代碼,然后添加“ engine”:
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
從中刪除值
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
就像這樣,ENV文件已經傳遞了信息。 也許它通過了兩次。
從另一個OP的“問題”粘貼而來,該問題實際上是答案,而不是問題:
此錯誤出現在帶有MySql 8.0.13的PHP Symfony4 / PDO學說中
對於我來說,這三個步驟之后:
Add this line to my.cnf
default_authentication_plugin=mysql_native_password
restart mysql server
Create a new MySql user/password and change it in your .env file
沒有步驟3,舊用戶將保留身份驗證類型:“ caching_sha2_password”創建新用戶后,新用戶將使用身份驗證類型:“ mysql_native_password”
PS這是由於MySql 8.0.13服務器中新的身份驗證類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.