Mariadb中文字符集问题处理

默认情况下Mariadb的中文无法正常显示,需要设置默认字符集才能正常显示中文。

注: 修改的实际目的就是,Client和Server端的字符集保持一致

1.全局设置方法

  1. 编辑配置文件,增加默认参数 vi /etc/mysql/my.cnf
  2. 重启 systemctl restart mariadb

my.cnf 中增加下面一段 UTF8编码的默认配置。

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

重启MariaDB即可

systemctl restart mariadb

查看字符集方法: show variables like "%character%"

MariaDB [(none)]> show variables like "%character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.002 sec)

2. 其他问题

如果上述方法还是有问题,需要看一下系统默认使用的字符集。

3. 安装

查看数据库服务状态

sudo apt install mariadb-server
systemctl status mariadb

显示结果

test@testsvr:~/libs$ systemctl status mariadb
● mariadb.service - MariaDB 10.3.27 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-06-13 11:19:45 HKT; 59s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20463 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 76.5M
   CGroup: /system.slice/mariadb.service
           └─20463 /usr/sbin/mysql
 ....

END(Moguf)