X M*_*Mac 5 php mysql pdo utf-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
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL 8.0.11和phpMyAdmin 4.8.2
我找到了类似问题的答案: PDO :: __ construct():服务器向客户端发送了未知的字符集(255)。请向开发商报告
这是重要的部分:“ MySQL 8将默认字符集更改为utfmb4。但是某些客户端不知道该字符集。因此,当服务器向客户端报告其默认字符集,并且客户端不知道服务器的含义时,它会引发此错误。”
给出的解决方案是通过在/etc/my.cnf中添加几行,将默认字符集更改回utf8,然后重新启动mysqld。
我的问题是/etc/my.cnf在我的文件中不存在,因此我无法在其中更改默认字符集。我看过的所有其他地方最终都引用了/my.cnf或引用了旧版本。
那么,如何在没有用于MySQL 8的/etc/my.cnf的情况下将默认字符集更改为utf8?
为了澄清答案:
my.cnf在您的/etc/文件夹中创建一个名为的文件。
现在将以下文本添加到/etc/my.cnf:
[客户]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
整理服务器= utf8_unicode_ci
字符集服务器= utf8
default_authentication_plugin = mysql_native_password
最后,重新启动mysql,一切应该一切顺利!如果仍然有问题,请尝试将PHP升级到更高版本。
我也有这个问题。问题是因为我运行的是旧版本的 PHP (5.6),一旦我升级到 PHP 7.4,错误就消失了。
对我来说这是在 Amazon Linux 2 上,升级命令是:
amazon-linux-extras install php7.4
Run Code Online (Sandbox Code Playgroud)
我发现 RedHat/CentOS 的许多版本默认都带有 PHP 5.6,我能够将它们升级到最新的 PHP 的最简单方法是在这里使用 remi 的 repo ( https://rpms.remirepo.net/ )
| 归档时间: |
|
| 查看次数: |
7623 次 |
| 最近记录: |