当前时间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 -u root
连接后执行,
使用更改身份验证插件。如果您设置了密码,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就会停止。开始
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.MysqL.plist
#ps:如果命令报错,不用管,直接执行 MysqL.server start
再次查看状态
让我们确保MysqL是running。再次用PHP连接测试下 看是否ok!
以上为我的解决办法,请参考
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。