php在连接mysql时为啥会包这样的错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php在连接mysql时为啥会包这样的错误?相关的知识,希望对你有一定的参考价值。
语法有问题,提示了第二行错误,检查语句,最好做个输出,连接成功返回一个输出,不然你都不知道有没有连上,一步步排查 参考技术A @是用来屏蔽错误信息的,不知道是你的字符有问题还是不能用在new前面(不怎么用,忘了具体细节)。你可以先吧@删除了,在这一句前面用error_reporting来控制错误信息的显示。 参考技术B 这个@是个什么鬼,语法错误[HY000] [2054] php连接mysql时错误
会出现这样的原因,主要都是因为mysql8.0版本的缘故,8.0版本默认编码为utf8mb4
解决方法:
MySQL配置文件my.ini中[mysqld]下加这两行
character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
然后又出现了另一个问题:The server requested authentication method unknown to the client
也是由于mysql版本缘故,8.0版本mysql账号密码解锁机制不一致
在数据库操作界面输入命令
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘账户密码‘;即可
或者在MYSQL配置文件my.iniz中[mysqld]下加入
default_authentication_plugin=mysql_native_password
以上是关于php在连接mysql时为啥会包这样的错误?的主要内容,如果未能解决你的问题,请参考以下文章
DBeaver 错误 2013:与 MySQL 的连接丢失。为啥?
为啥我在使用 JDBC 和 MySQL 的 JSP 中出现连接失败错误