一、问题描述

使用 PHP5连接MySQL8时报错Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in xxx on line n,导致连接失败
在这里插入图片描述

二、解决方法

这是因为MySQL默认编码为utf8mb4引起的错误

首先将数据库和数据表所有varchar列的编码方式改回utf8
在这里插入图片描述
在这里插入图片描述
再找到MySQL的启动配置文件my.ini,此配置文件在MySQL安装的根目录下:
若没有my.ini,请手动新建,其内容见下文

在这里插入图片描述
将其内容改为:(重点是修改字符集)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
# 这里是你自定义的
basedir=D:\mysql\mysql-8.0.16-winx64
# 设置mysql数据库的数据的存放目录
# 这里是你自定义的
datadir=D:\mysql\mysql-8.0.16-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

之后重启mysql服务即可成功通过PHP连接MySQL

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐