在 CentOS 系统中,MySQL 乱码问题通常是由于字符集设置不正确导致的。以下是一些建议和步骤来解决 MySQL 乱码问题:
打开 MySQL 的配置文件 my.cnf
(通常位于 /etc/mysql/
或 /etc/mysql/mysql.conf.d/
目录下),在 [mysqld]
和 [client]
部分添加以下内容:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
这将设置服务器和客户端的默认字符集为 utf8mb4
,并使用 utf8mb4_unicode_ci
排序规则。
保存更改后,重启 MySQL 服务以使更改生效:
sudo systemctl restart mysqld
如果已经存在数据库和表,需要将它们的字符集更改为 utf8mb4
。可以使用以下 SQL 语句进行更改:
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
将 your_database_name
和 your_table_name
替换为实际的数据库和表名。
确保在连接到 MySQL 时使用正确的字符集。例如,在 PHP 中,可以使用以下代码设置连接字符集:
mysqli_set_charset($connection, "utf8mb4");
对于其他编程语言,请参考相应的文档以了解如何设置连接字符集。
按照以上步骤操作后,MySQL 乱码问题应该得到解决。如果仍然存在问题,请检查应用程序代码中是否有硬编码的字符集设置,并确保它们与数据库的字符集设置一致。