发布于2026-08-22 阅读(0)
扫一扫,手机访问
Debian下MariaDB字符集设置建议

一 推荐方案
二、Debian路径下的配置文件示例
[client-server]
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character-set-client-handshake = FALSE # 建议保持 FALSE,尊重客户端协商
# init_connect 可省略;若使用需确保 SUPER 权限账户不受影响
# init_connect = 'SET NAMES utf8mb4'[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4三 使配置生效与验证
sudo systemctl restart mariadbSHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';期望看到关键变量为:character_set_server/connection/client/results/database = utf8mb4,collation_server/connection/database = utf8mb4_unicode_ci。另:character_set_system 通常为 utf8,character_set_filesystem 为 binary,属正常表现。四 存量对象迁移与注意事项
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE t (
id INT PRIMARY KEY,
nick VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;character-set-client-handshake = FALSE,让服务器与客户端按能力协商;若设为 TRUE,可能强制使用服务器默认而非客户端期望的字符集。init_connect='SET NAMES utf8mb4',因为 SUPER 账户不会执行该语句,可能导致会话字符集不一致;如确需统一连接字符集,请改为在应用或专用账户级初始化,或确保 SUPER 会话也执行相同设置。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9