微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

macOs 使用Homebrew升级到MySQL 8系列之后,php无法连接解决方法

当前时间2018-9-28

使用brew install MysqL 认安装为 MysqL 8,但是使用PHP连接到数据库之后,出现了这种错误

Unexpected server respose while doing caching_sha2 auth: 109

但是在终端连接MysqL的时候 是可以使用的 如图:

 

出现这样问题大概有半月之余,导致只能去连接外网的MysqL,真的很痛苦!下边我把自己的解决办法写一下,请需要的同学参考。

 

错误似乎是由MysqL 8.0.4中的认身份验证表单引起的。

 解决方法

1.更改root用户的身份验证

使用MysqL更改root用户的身份验证。

$ MysqL -u root

连接后执行

MysqL> ALTER USER 'root'@'localhost' IDENTIFIED WITH MysqL_native_password BY '密码';

使用更改身份验证插件如果您设置了密码BY ''请输入您的密码

 

MysqL> SELECT user,host,plugin FROM MysqL.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| MysqL.infoschema | localhost | caching_sha2_password |
| MysqL.session    | localhost | caching_sha2_password |
| MysqL.sys        | localhost | caching_sha2_password |
| root             | localhost | MysqL_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.01 sec)

请确保root已更改为MysqL_native_password 。

2.编辑my.cnf

$ MysqL --help | grep my.cnf
                      order of preference,my.cnf,$MysqL_TCP_PORT,/etc/my.cnf /etc/MysqL/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

您可以检查文件的加载顺序。如果您使用Homebrew安装,请编辑/usr/local/etc/my.cnf

# Default Homebrew MysqL server config
[MysqLd]
# Only allow connections from localhost
bind-address = 127.0.0.1
# 追加
default_authentication_plugin=MysqL_native_password

 

3.重启MysqL

用Homebrew安装的MysqL

$ MysqL.server stop

即使我试图阻止,也不会停止。要停止,您需要卸载已注册的服务

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.MysqL.plist

有了这个

$ MysqL.server status
 ERROR! MysqL is not running

只要是MysqL就会停止。开始

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.MysqL.plist

#ps:如果命令报错,不用管,直接执行  MysqL.server start

再次查看状态

$ MysqL.server status
 SUCCESS! MysqL running (XXXXX)

让我们确保MysqL是running。再次用PHP连接测试下 看是否ok!

 

以上为我的解决办法,请参考

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐