繁体   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