在 Debian 上设置 MySQL(或 MariaDB)字符集,通常目标是整个数据库默认使用 UTF-8(推荐 utf8mb4),避免中文乱码。下面按常见场景说明。
mysql -u root -p
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
Debian 下常见路径:
/etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/mariadb.conf.d/50-server.cnf也可用:
mysql --help | grep "Default options"
编辑配置文件(示例为 utf8mb4):
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
✅
utf8mb4支持 emoji,比utf8更推荐
sudo systemctl restart mysql
# 或
sudo systemctl restart mariadb
ALTER DATABASE 数据库名
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
ALTER TABLE 表名
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
ALTER TABLE 表名
MODIFY 列名 VARCHAR(255)
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql -u root -p --default-character-set=utf8mb4
$pdo = new PDO(
"mysql:host=localhost;dbname=test;charset=utf8mb4",
$user,
$pass
);
utf8?utf8 只支持 3 字节)utf8mb4如果你告诉我:
我可以给你更精确的配置示例。