我刚刚安装了我的开发环境。
当我尝试通过SequelPro连接mysql数据库时,我得到:
Authentication plugin 'caching_sha2_password' cannot be loaded如:Authentication plugin 'caching_sha2_password' cannot be loaded中所述,我运行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';然后我可以通过SequelPro连接我的数据库
但是当我执行Laravel命令时:
php artisan migrate我得到了:
PDOException::("PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109")我现在该怎么做?
PD:我在Mac上使用Laravel Valet,而Laravel 5.6。
发布于 2018-12-23 01:19:54
您必须使用mysql命令通过shell在您的laravel应用程序中更改使用
ALTER USER 'user'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your password';
ALTER USER 'user'@'%' IDENTIFIED WITH caching_sha2_password BY 'your password';发布于 2019-06-12 17:57:17
这个问题对安全有好处,也许。
但是我使用命令来解决这个问题:
root**@**localhost caching_sha2_password BY 'password';识别用户身份
希望您不会再看到此错误。
发布于 2018-09-02 04:56:53
使用$ mysql -uUser -pPa$$w0rd之后,可以使用mysqli_real_connect()或PDO通过PHP打开MySQL连接
确保用户已激活缓存sha2密码,而不是本机密码。(PHP 7.2.9-1,MySQL 8.0.12)
当更改为本机密码时,PHP会说
mysqli::real_connect():执行caching_sha2身份验证时出现意外的服务器响应: 109
在激活缓存sha2密码的情况下,我总是得到:
mysqli::real_connect():(HY000/1045):拒绝用户' user '@'localhost‘的访问(使用密码:是)
所以我试着用$ mysql从外壳登录,成功了,之后我就可以用PHP连接了。看起来像PHP mysqlnd中的一个Bug。
在打开MySQL连接之前实现一个shell_exec('mysql -u'.$user.' -p"'.$password.'" -e quit > /dev/null 2>&1');,到目前为止,我已经解决了这个问题。
重新启动或重新启动MySQL服务,重置缓存的密码,将再次弹出拒绝访问的消息。
希望这能有所帮助。
问候
https://stackoverflow.com/questions/51844962
复制相似问题