我正在尝试将一个表迁移到一个名为kokodb的数据库中。然而,我不断得到这个错误:
sqlstate[hy000][2054]服务器请求的身份验证方法客户端未知(sql:select*from information\u schema.tables where table\u schema=kokodb and table\u name=migrations)
这是我的环境文件:
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,
这个错误的可能解决办法是什么?
3条答案
按热度按时间ryevplcw1#
从中删除值
就像那样,env文件已经传递了信息。也许已经过了两次了。
aurhwmvo2#
对我来说,在工作区容器中实际运行artisan命令解决了与我相同的问题。查看laravel run artisan命令。
在config/database.php的末尾添加以下代码,并插入'engine':
m2xkgtsf3#
从另一篇专栏文章的“问题”中粘贴出来,这实际上是一个答案,而不是一个问题:
这个错误出现在mysql 8.0.13的php symfony4/pdo中
对于我来说,在这3个步骤之后工作:
如果没有第三步,老用户在创建新用户后会保留身份验证类型:“caching\u sha2\u password”,新用户会使用身份验证类型:“mysql\u native\u password”
ps这是因为MySQL8.0.13服务器中有新的身份验证类型