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