mysql 8 错误 Server sent charset unknown to the client

Mysql 2020-07-22 阅读 5 评论 0

问题描述

安装 mysql 8 之后,尝试使用 PHP 连接 mysql 并读取数据。

$dsn = "mysql:dbname=test;host=localhost;charset=utf8";
$user = "root";
$password = "root";
try {
    $pdo = new PDO($dsn, $user, $password);
    $res = $dbh->query($sql);
} catch (PDOException $e) {
    echo $e->getMessage();
}

但是报错了。

Server sent charset unknown to the client. Please, report to the developers

解决方法

MySQL 8将默认字符集更改为utf8mb4。但是有些客户不知道这个字符集。因此,当服务器向客户端报告其默认字符集时,客户端不知道服务器的含义时,它将引发此错误。

编辑 my.cnf,指定编码,增加以下内容。

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
最后更新 2020-07-22