一、修改字符集

1、修改数据库字符集

alter database db_new charset utf8mb4;

2、修改表字符集

alter table tb charset=utf8mb4;

3、修改表字符集和校验规则

alter table tb charset=utf8mb4 collate=utf8mb4_general_ci;

4、修改表字段的字符集和校验规则

alter table tb modify name varchar(50) character set utf8 collate utf8_general_ci;

二、配置文件修改字符集

修改MySQL配置文件my.cnf

[mysqld]
character_set_server=utf8mb4

通常在my.cnf文件中修改character_set_server就足够了,下面这些配置项会随着character_set_server的变更而变更,但是如果想自定义某些参数的字符集或者校验规则,可以在配置文件中单独为其指定字符集和校验规则。

character_set_client=utf8
character_set_connection=utf8
character_set_database=utf8
character_set_results=utf8
character_set_system=utf8
collation_connection=utf8_general_ci
collation_database=utf8_general_ci
collation_server=utf8_general_ci

建议数据库的字符集和校验规则要统一,字符集不同,会导致某些场景下,比如join连接字段字符集不同,可能导致无法走索引,影响SQL执行性能。

三、查看字符集

1、查看数据库支持的字符集:

select * from information_schema.character_sets;

2、查看数据库支持的检验规则:

select * from information_schema.collations;

3、查看表字符集及检验规则:

show create table tb\G
select * from information_schema.tables where table_name='tb'\G