首页 文章

laravel php工匠迁移

提问于
浏览
1

当我运行 php artisan migrate

在Connection.php第664行中:

SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法(SQL:select * from information_schema.tables,其中table_schema = aviandb和table_name = migrations)

在Connector.php第68行:

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

在Connector.php第68行:

PDO :: __ construct():服务器请求客户端未知的身份验证方法[caching_sha2_password]

我怎么解决?

2 回答

  • 2

    您的php mysql扩展不支持您运行的MySQL服务器版本 .

    我假设您正在运行MySQL 8.0,这是本文发布时的新内容 .

    您需要更新或重建PHP,支持最新版本的MySQL,或降级MySQL服务器版本 .

    另一种解决方案是使用mysql_native_password选项创建用户 .

    CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
    GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
    
  • 1

    对于

    PDO :: __ construct():服务器请求客户端未知的身份验证方法[caching_sha2_password]

    问题,有一个日本博客,涵盖了这个:

    https://qiita.com/r641y/items/7f0ca12ced72363f9448

    总而言之,您可以通过命令行登录mysql,然后将密码类型从 caching_sha2_password 更改为 mysql_native_password 类型 .

    在mysql中实现这个的代码是:

    ALTER USER 'user'@"localhost" IDENTIFIED WITH mysql_native_password BY 'password'
    

    您可以使用您的用户名和密码将'user'和'password'替换为mysql .

    然后在mysql中再次:

    mysql> FLUSH PRIVILEGES;
    

    完成后,记得更新.env文件()

    DB_USERNAME =和DB_PASSWORD = .

    有一个关于如何到达.env文件的示例视频:https://laracasts.com/series/laravel-from-scratch-2017/episodes/4?autoplay=true

    希望这可以帮助!它适用于我的macbook pro high sierra .

相关问题