laravel php artisan迁移

9w11ddsr  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(345)

当我跑的时候 php artisan migrate 在connection.php第664行:
sqlstate[hy000][2054]服务器请求的身份验证方法客户端未知(sql:select*from information \u schema.tables where table \u schema=aviandb and table \u name=migrations)
在connector.php第68行中:
sqlstate[hy000][2054]服务器请求的身份验证方法客户端未知
在connector.php第68行中:
pdo::uu construct():服务器请求的身份验证方法客户端未知[缓存\u sha2\u密码]
我该怎么解决?

qrjkbowd

qrjkbowd1#

mysql 8&laravel:服务器请求的身份验证方法客户端未知
所以,这是解决办法。您可以使用“旧”身份验证机制创建一个用户,mysql数据库驱动程序仍然需要这种机制。

CREATE USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'localhost';

ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

然后重新启动 mysql 服务器

sudo service mysql restart;
9vw9lbht

9vw9lbht2#

您的php mysql扩展不支持您正在运行的mysql服务器版本。
我假设您运行的是mysql 8.0,这在本文发布时是新的。
您需要更新或重建php以支持最新版本的mysql,或者降级mysql服务器版本。
另一种解决方案是使用mysql\u native\u password选项创建用户。

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

b09cbbtk3#

为了
pdo::uu construct():服务器请求的身份验证方法客户端未知[缓存\u sha2\u密码]
本期,有一个日本博客,内容包括:
https://qiita.com/r641y/items/7f0ca12ced72363f9448
总之,您可以通过命令行登录mysql,然后将密码类型从 caching_sha2_passwordmysql_native_password 类型。
在mysql中实现这一点的代码是:

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

您可以用mysql的用户名和密码替换“user”和“password”。
在mysql中:

mysql> FLUSH PRIVILEGES;

完成后,请记住更新.env文件的()
db\u username=和db\u password=。
下面有一个关于如何获取.env文件的示例视频:https://laracasts.com/series/laravel-from-scratch-2017/episodes/4?autoplay=true
希望这有帮助!它在我的MacBookPro high sierra上起了作用。

mjqavswn

mjqavswn4#

在你的mysql查询上运行这个脚本,只需输入你的新密码就可以了

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'

相关问题