debian

Debian MariaDB支持哪些字符集

小樊
40
2025-09-19 16:32:47
栏目: 云计算

Debian环境下MariaDB支持的字符集及配置说明

一、MariaDB支持的字符集概述

MariaDB继承了MySQL的字符集体系,支持多种语言和编码格式的字符集,涵盖西欧、中欧、东亚、中东等多个区域。通过SHOW CHARSET;命令可查看MariaDB支持的全部字符集,常见字符集包括但不限于:

二、Debian环境下MariaDB字符集的默认配置

在Debian系统中,MariaDB的默认字符集通常为latin1(对应latin1_swedish_ci排序规则),但用户可根据需求修改为更通用的utf8mb4(推荐)。修改默认字符集需编辑MariaDB配置文件(通常为/etc/mysql/my.cnf/etc/mysql/mariadb.conf.d/50-server.cnf),在[mysqld][client][mysql] section中添加以下配置:

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

修改完成后重启MariaDB服务使配置生效:sudo systemctl restart mariadb

三、字符集的层级继承关系

MariaDB的字符集遵循层级继承原则,优先级从高到低依次为:

  1. 字段级:表中字段可单独指定字符集(如CREATE TABLE users (name VARCHAR(50) CHARACTER SET utf8mb4));
  2. 表级:表可设置默认字符集(如CREATE TABLE users (...) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4);
  3. 数据库级:数据库可设置默认字符集(如CREATE DATABASE mydb CHARACTER SET utf8mb4);
  4. 服务器级:服务器全局默认字符集(通过配置文件设置)。

若未显式指定,字段会继承表的字符集,表继承数据库的字符集,数据库继承服务器的字符集。

四、推荐配置:使用utf8mb4字符集

为避免中文、emoji等特殊字符乱码,强烈建议将MariaDB的默认字符集设置为utf8mb4(支持完整的Unicode字符集,包括4字节字符)。配置后需确保客户端连接时也使用utf8mb4,例如通过PHP的PDO连接时可指定:$dsn = "mysql:host=localhost;dbname=mydb;charset=utf8mb4",或通过mysqli连接后执行$mysqli->set_charset("utf8mb4")

0
看了该问题的人还看了