在开发过程中,有时候会用到表情,这就需要将mysql的字段字符集给修改成utf8mb4了
同时链接池中也要修改:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/gbb?allowMultiQueries=true&character_set_server=utf8mb4&autoReconnect=true (这里用的是springboot)
将原来的 characterEncoding=UTF-8设置成character_set_server=utf8mb4&autoReconnect=true
1. 修改编码及字符集
修改数据库字符集:
ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;
修改表字符集:
ALTER TABLE `Table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
2. 修改数据表中所有表中字段的编码及字符集
先通过sql帮我们转换成所有的表的更改字符集语句:
SELECT
CONCAT("ALTER TABLE `", TABLE_NAME,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;")
AS target_tables
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="DATABASE"
AND TABLE_TYPE="BASE TABLE"
此语句会基于 MySQL 的元数据表,得到一组可直接执行的 SQL 列表,如下:
ALTER TABLE `Table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE `Table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE `Table3` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
......
显示所有数据表的修改编码方式。
从结果集中复制粘贴,这里使用的是Navicat。