ubuntu

Ubuntu MariaDB字符集设置指南

小樊
43
2025-10-18 17:35:45
栏目: 云计算

Ubuntu MariaDB 字符集设置指南(推荐使用 utf8mb4)

一、字符集选择说明

MariaDB 10.x 默认字符集为 latin1,无法满足多语言(如中文、emoji)及现代应用需求。强烈推荐使用 utf8mb4,它是 MySQL/MariaDB 对“真正 UTF-8”的实现,支持 4 字节字符(如表情符号、部分生僻汉字),是当前行业标准字符集。

二、配置前准备

  1. 更新系统包:确保系统软件包为最新版本
    sudo apt update && sudo apt upgrade -y
    
  2. 安装 MariaDB(若未安装):
    sudo apt install -y mariadb-server mariadb-client
    
  3. 运行安全脚本:初始化 root 密码、移除匿名用户、禁止 root 远程登录等
    sudo mysql_secure_installation
    

三、修改配置文件(全局生效)

MariaDB 的主配置文件路径为 /etc/mysql/mariadb.conf.d/50-server.cnf(Ubuntu 默认路径),需修改 [mysqld] 部分的字符集参数:

sudo sed -i "s/^ *\(character-set-server\s*=\s*\).*/\1utf8mb4/" /etc/mysql/mariadb.conf.d/50-server.cnf
sudo sed -i "s/^ *\(collation-server\s*=\s*\).*/\1utf8mb4_unicode_ci/" /etc/mysql/mariadb.conf.d/50-server.cnf

参数说明

四、重启 MariaDB 服务

修改配置后需重启服务使更改生效:

sudo systemctl restart mariadb

五、验证全局字符集配置

登录 MariaDB 命令行,执行以下命令查看全局字符集变量:

mysql -u root -p

输入密码后,运行:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

预期输出(关键变量需为 utf8mb4):

Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_server utf8mb4
collation_connection utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci

六、设置数据库/表字符集(可选)

若已有数据库或表需修改字符集,可使用以下命令:

  1. 修改数据库字符集
    ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    
  2. 修改表字符集
    ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

your_database_nameyour_table_name 替换为实际名称。

七、确保客户端连接使用 utf8mb4(可选)

为避免客户端与服务器字符集不一致导致乱码,可在配置文件中添加 init_connect 参数(在 [mysqld] 部分末尾添加):

init_connect='SET NAMES utf8mb4'

重启服务后,所有新连接都会自动执行 SET NAMES utf8mb4,确保客户端使用 utf8mb4 字符集。

注意事项

0
看了该问题的人还看了