PHP连接操作MySQL数据库出错Server sent charset unknown to the client. Please, report to the developers解决

PHP连接操作MySQL数据库出错Server sent charset unknown to the client. Please, report to the developers

PHP连接MySQL数据库时出错,头大,这种配置环境的东西是最烦人的。。。。
以下是PHP代码

$conn = @mysql_connect("localhost","root","******");//连接数据库  
//数据库连接密码不方便显示,用*号代替 
mysql_select_db("school",$conn);//选择数据库   
mysql_query("set names GBK");
if($conn){
	echo "1";
}else{
	echo "0";
}
mysql_close($conn);

代码采用的是最简单的方式-mysql(面向过程)去连接MySQL数据库。

  • 首先设置主机名,一般我们测试都是在本机,写localhost就行。
  • 然后是用户名,一般MySQL的用户名为root,如果你改过你的MySQL用户名,则用你修改后的用户名。
  • 然后就是密码啦
  • 再就是我们要连接的数据库名,我这里连接的是school数据库。
  • 然后一个if判断,按照逻辑来说,数据库连接成功是出现1,失败是出现2!
  • 最后关闭MySQL连接。

但是出来的效果是这个。。
在这里插入图片描述
看到这么多错误的时候内心是很崩溃的。。。。
仔细看,所有的错误都是提示字符编码的问题。

在mysql命令行输入以下命令:

show variables like "character_set_%";

在这里插入图片描述
如图,我使用的MySQL版本为8.0.19
在这里插入图片描述

找了很多资料跟上了mysql官方说明文档才知道原来MySQL8.0已经已经把默认字符集升级成ut8mb4了。
所以我把MySQL的配置文件里的编码都从utf8mb4改为utf8!!!
在这里插入图片描述
但是我在命令行工具再次运行命令,出来的结果还是这样,改了一些,没有完全更改为utf8。。。。。。
还有两大顽固character-set-database和character-set-server没有改过来。。。
在这里插入图片描述
但是明明我配置文件已经改了,为什么还是没有配置成功呢???问号脸
再次查找资料,发现我漏了一个环节,改了配置文件之后应该是要重启MySQL服务的,但是我没有重启,所以有一些配置项是还没有生效的!!!
那么就重启MySQL服务咯。
输入命令
停止服务:

net stop mysql

启动服务:

net start mysql

出现以下效果说明已经重启成功!!!!
在这里插入图片描述
如果出现以下问题:
在这里插入图片描述
表明你当前角色的权限不够,需要进入管理员权限进行操作,现在我们返回桌面,以管理员身份运行cmd(如何以管理员进入cmd请自行百度),再次输入 net stop mysql 命令。这次mysql服务已经被我们成功停止了。
再次进入MySQL命令行工具,输入命令

show variables like "character_set_%";

在这里插入图片描述
成功了,成功了!!!!!
成功把MySQL8.0的默认字符集改回utf8。
马上回到PHP代码,运行起来!!!
在这里插入图片描述
之前出现的那堆错误终于没有再出来了!!!而且梦寐以求的连接成功显示的**“1”**也出来了!!!!
到此,PHP已经可以成功连接上MySQL数据库了,那接下来就是随便你发挥了!!!!!

如果有写错或者不足的地方,还请在评论区指正!!我会及时修改!!!!!!

请尊重原创,如需转载,还请注明原作者,原文链接,谢谢啦!!!

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值