簡體   English   中英

Laravel中的遷移錯誤

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

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