“服务器发送的字符集(255)客户端未知”设置mysql字符集为utf8 w/o/etc/my.cnf?

5lhxktic  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(532)

这个问题在这里已经有答案了

pdo::uuu construct():服务器发送了客户端未知的字符集(255)。请向开发者报告(10个答案)
8个月前关门了。
我正在尝试从phpmyadmin连接到mysql数据库。但当我输入用户名和密码时,会收到两条错误消息:

mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers

mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers

我使用的是mysql 8.0.11和phpmyadmin 4.8.2
我找到了一个类似问题的答案:pdo::uu construct():服务器发送了客户端未知的字符集(255)。请向开发商汇报
这里是重要的部分:“mysql 8将默认字符集更改为utfmb4。但有些客户不知道这个角色。因此,当服务器向客户机报告其默认字符集,而客户机不知道服务器的含义时,就会抛出此错误。“
给出的解决方案是通过在/etc/my.cnf中添加几行并重新启动mysqld,将默认字符集改回utf8。
我的问题是/etc/my.cnf在我的文件中的任何地方都不存在,所以我无法更改那里的默认字符集。我查找的所有其他地方最终都引用了/my.cnf或旧版本。
那么,在mysql 8中,如果没有/etc/my.cnf,如何将默认字符集更改为utf8呢?

cl25kdpy

cl25kdpy1#

为了澄清答案:
创建一个名为 my.cnf 在你的 /etc/ 文件夹。
现在将以下文本添加到 /etc/my.cnf :
[客户]
默认字符集=utf8
[mysql]数据库
默认字符集=utf8
[我的qld]
排序规则服务器=utf8\u unicode\u ci
字符集服务器=utf8
默认\u身份验证\u插件=mysql\u本机\u密码
最后,重启mysql,一切都会好起来的!如果仍然有问题,请尝试将php升级到更高版本。

esbemjvw

esbemjvw2#

我也有这个问题。问题是因为我运行的是旧版本的php(5.6),一旦升级到php7.4,错误就消失了。
这是在amazon linux 2上为我准备的,升级命令是:

amazon-linux-extras install php7.4

我发现很多版本的redhat/centos在默认情况下都附带php5.6,而我能够将它们升级到最新php的最简单方法就是在这里使用remi的repo(https://rpms.remirepo.net/)

pqwbnv8z

pqwbnv8z3#

重新安装MySQL8,在安装时选择第二种身份验证方法“use legacy authentication method(retain mysql 5.x compatibility)”。

相关问题