mysql字符集相关命令

踩了mysql字符集的坑之后(具体见《mysql之坑–UTF8字符集》),打算整理一份mysql字符集相关的命令,包含如何查看、修改字符集。

1.查看 MySQL 数据库服务器和数据库字符集。

mysql> show variables like ‘%char%’;
+————————–+—————————————-+
| Variable_name | Value |
+————————–+—————————————-+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.6.24-winx64\share\charsets\ |
+————————–+—————————————-+

2.查看 MySQL 数据表(table) 的字符集。

show table status from 库名 like ‘表名’;

+———–+——–+———+————+——+—————–+——
| Name | Engine | Version | Row_format | Rows | Collation |……
+———–+——–+———+————+——+—————–+——
| countries | InnoDB | 10 | Compact | 11 | utf8_general_ci |……
+———–+——–+———+————+——+—————–+——

3.查看 MySQL 数据列(column)的字符集。

show full columns from 表名;

+———————-+————-+—————–+——–
| Field | Type | Collation | …….
+———————-+————-+—————–+——–
| countries_id | int(11) | NULL | …….
| countries_name | varchar(64) | utf8_general_ci | …….
| countries_iso_code_2 | char(2) | utf8_general_ci | …….
| countries_iso_code_3 | char(3) | utf8_general_ci | …….
| address_format_id | int(11) | NULL | …….
+———————-+————-+—————–+——–

4.查看当前安装的 MySQL 所支持的字符集。

show charset; 或 show char set;

 

5.修改字符集

5.1 修改数据库的字符集

alter database 库名 character set utf8mb4;

5.2 修改表的字符集

alter table 表名 convert to character set utf8mb4;

5.3 修改字段

alter table 表名 modify column ‘字段名’ varchar(30) character set utf8mb4 not null;


发表评论

电子邮件地址不会被公开。 必填项已用*标注