今天在写demo时,SpringBoot项目启动后会向mysql中插入几条初始化数据,但是查看数据库的时候发现中文字符显示?????。
mysql 保存数据中文乱码"???"问题一般是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,要将数据库的编码设置为中文编码。
修改mysql实例的字符集
1、使用mysql -u root -p 登陆mysql后,用 show variables like "char%"; 查看内部字符集信息:
注意图中红框内的两条信息,我们要把所有latin1
修改为utf8mb4。
2、
有两种方法修改
方一:修改/etc/my.cnf文件,在文件内添加 character-set-server=utf8mb4 和collation_server=utf8mb4_unicode_ci
保存后重启mysql,查看字符集信息。
方二:在mysql客户端里用SET 修改对应值(但是我修改时不起作用)
SET character_set_database='utf8mb4';
SET character_set_server='utf8mb4';
修改客户端使用的字符集
在spring.datasource.url后面添加 useUnicode=true&characterEbcoding=utf8mb4
修改完这两处后,再次运行程序,发现数据库中文不再乱码: