一、字符集
1.查看字符集
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (1.15 sec)
可以看到上述 character_set_database 和 character_set_server 字符集格式为 latin1,在创建数据库\数据表是若没有指定字符集 ,则使用默认字符集;当插入数据中包含中文时,会报错,因此需要修改字符集格式。
2、修改字符集
[root@rqtanc mysql57]# vim /etc/my.cnf
添加以下内容:character_set_server=utf8 ,保存退出
3、重启mysql服务使其生效
[root@rqtanc mysql57]# systemctl restart mysqld.service
4、对已创建的数据库,数据表修改字符集,操作如下:
alter database 数据库名 character set 'utf8mb4';
alter table 数据表名 convert to character set 'utf8mb4'
5、相关说明
级别 | 说明 |
---|---|
character_set_server | 服务器级别字符集 |
character_set_database | 当前数据库的字符集 |
character_set_client | 服务器解码请求时使用的字符集 |
character_set_connection | 服务器处理时会把请求字符串从 character_set_client 转换为 character_set_connection |
character_set_results | 服务器向客户端返回数据时使用的字符集 |
二、比较规则
1、查看当前数据库服务器支持的字符集(字符编码)列表以及每种字符集的默认排序规则。
mysql> show charset;
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European