将数据库字符集从utf8修改为utf8mb4和修改库的默认字符集
alter database test default character set utf8mb4 COLLATE utf8mb4_unicode_ci;
修改表的默认字符集
ALTER TABLE test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
将表中原来的数据转换为utf8mb4
ALTER TABLE test CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
#修改列字符集
ALTER TABLE test CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改字符集参数
[client]
default-character-set = utf8mb4
//default-character-set = utf8
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
//或者
[mysqld]
character-set-server = utf8
init-connect='set names utf8' 对character_set_client、character_set_connection、character_set_results起作用
character_set_system 是系统元数据(字段名等)存储时使用的编码字符集,该字段和具体存储的数据无关。总是固定不变的——utf8. 我们可以不去管它。
character_set_server 量设置的 server 级别的(mysqld级别的) 字符集
一同设置的还有 server 级别的排序规则:collation_server
改完配置需要重启下mysql: systemctl restart mysqld