使用环境:idea2020版
Navicat Premium
步骤为:
1、更改MariaDB默认编码格式:
在MariaDB目录的data下新建文件my.cnf,并配置内容。然后重启MariaDB服务
[mysqld] skip-grant-tables datadir=D:/MariaDB/mariadb-10.6.4-winx64/data #更改为你自己电脑中MariaDB的data目录,之后将这一行删除 collation-server = utf8mb4_unicode_ci init-connect='SET NAMES utf8mb4' character-set-server = utf8mb4 default-storage-engine = innodb innodb_file_per_table max_connections = 4096 [mysql] default-character-set=utf8mb4 [client] plugin-dir=D:/MariaDB/mariadb-10.6.4-winx64/lib/plugin default-character-set=utf8mb4
正常启动之后(启动不了就检查my.cnf文件中的路径是否有问题),使用命令行查看MariaDB中的编码格式,在start MariaDB之后输入语句
show variables like 'character%';
可以看到client,connection,results的值都为utf8mb4。数据库编码格式更改成功(之前建立的表编码格式不会改变,可以删掉重新建表)。
2、基于步骤1 的设置之后项目运行仍是中文乱码
如果运行之后仍是中文乱码,则可以检查idea项目的encode是否为UTF-8,以及连接数据库语句是否出现问题。
3、Navicat Premium中可以显示出中文而内置数据库是乱码
Navicat Premium中可以显示出中文而内置数据库是乱码,项目也显示乱码的情况,需要重新在Navicat Premium中建立与MariaDB的连接,并将高级设置中的编码该为自动。然后再建表就能恢复中文显示问题。