这个问题在这里已经有答案了:
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呢?
3条答案
按热度按时间cl25kdpy1#
为了澄清答案:
创建一个名为
my.cnf
在你的/etc/
文件夹。现在将以下文本添加到
/etc/my.cnf
:[客户]
默认字符集=utf8
[mysql]数据库
默认字符集=utf8
[我的qld]
排序规则服务器=utf8\u unicode\u ci
字符集服务器=utf8
默认\u身份验证\u插件=mysql\u本机\u密码
最后,重启mysql,一切都会好起来的!如果仍然有问题,请尝试将php升级到更高版本。
esbemjvw2#
我也有这个问题。问题是因为我运行的是旧版本的php(5.6),一旦升级到php7.4,错误就消失了。
这是在amazon linux 2上为我准备的,升级命令是:
我发现很多版本的redhat/centos在默认情况下都附带php5.6,而我能够将它们升级到最新php的最简单方法就是在这里使用remi的repo(https://rpms.remirepo.net/)
pqwbnv8z3#
重新安装MySQL8,在安装时选择第二种身份验证方法“use legacy authentication method(retain mysql 5.x compatibility)”。