php - Laravel:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法

原文 标签 php mysql laravel artisan migrate

安装新的laravel应用5.7并尝试迁移后,出现此错误:


  Illuminate \ Database \ QueryException:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法(SQL:从information_schema.tables中选择*,其中table_schema = xxx_db,table_name =迁移)
  
  在
  C:\ xampp \ htdocs \ xxxxx \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php:664
  660 | //如果在尝试运行查询时发生异常,我们将
  格式化错误661 | //包含SQL绑定的消息,
  这将使此异常成为662 | //对
  开发人员,而不仅仅是数据库的错误。 663 |捕获(异常
  $ e){
  
  664 |抛出新的QueryException(665 | $ query,
  $ this-> prepareBindings($ bindings),$ e 666 | ); 667 | } 668 |
  
  异常跟踪:
  
  1 PDOException::(“” PDO :: __ construct():服务器请求
  客户端未知的身份验证方法[caching_sha2_password]“)
  C:\ xampp \ htdocs \ xxxxx \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors \ Connector.php:70
  
  2 PDO :: __ construct(“ mysql:host = 127.0.0.1; port = 3306; dbname = xxx_db”,
  “根”, ”**********”, [])
  C:\ xampp \ htdocs \ xxxxx \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors \ Connector.php:70
  
  请使用参数-v查看更多详细信息。

最佳答案

重新安装MySQL,选择“旧式身份验证方法”,如iamge附件SQL Authentication method中所示
.env中的数据库参数如下

DB_CONNECTION=mysql  
DB_HOST=127.0.0.1  
DB_PORT=3306  
DB_DATABASE=database_name  
DB_USERNAME=database_username  
DB_PASSWORD=database_password(if any)  

config / database.php中的数据库参数

'mysql' => [  
    'driver' => 'mysql',  
    'url' => env('DATABASE_URL'),  
    'host' => env('DB_HOST', '127.0.0.1'),  
    'port' => env('DB_PORT', '3306'),  
    'database' => env('DB_DATABASE', 'database_name'),  
    'username' => env('DB_USERNAME', 'database_username'),  
    'password' => env('DB_PASSWORD', 'database_password'),  
    'unix_socket' => env('DB_SOCKET', ''),  
    'charset' => 'utf8mb4',  
    'collation' => 'utf8mb4_unicode_ci',  
    'prefix' => '',  
    'prefix_indexes' => true,  
    'strict' => true,  
    'engine' => null,  
    'options' => extension_loaded('pdo_mysql') ? array_filter([  
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),  
    ]) : [],  
],  

从项目终端运行php artisan migrate

相关文章:

php - 使用枢轴表进行 Eloquent 或查询构建器搜索

javascript - 在同一页面上载图像文件

php - 如何根据给定条件选择最短的GPS坐标?

php - 为什么在PHP中使用ORM?

php - SQL:在laravel中,修改表`familymembers`添加约束`familymembers_user_id_foreign`外键(`user_id`)引用`all_users`(`id`)

apache - 完全相同的请求向邮递员返回200,但向React App返回404

php - 我无法发出警报。我想念什么?

python - 如何在SQL查询中正确转义%s

mysql - 将零值替换为零,然后再从同一组的前一行中减去该行

mysql - MySQL创建具有自动递增ID的表