mysql5.6修改字符集
1. 查看当前数据库字符集
首先,我们需要查看当前数据库的字符集。
SHOW VARIABLES LIKE 'character_set_database';
若当前字符集为utf8,则输出如下:
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | utf8 |
+------------------------+--------+
若当前字符集不为utf8,我们需要修改字符集。
2. 修改数据库字符集
2.1 修改配置文件
我们需要打开mysql配置文件,在其中查找以下配置:
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
其中,character-set-server为MySQL数据库服务器默认字符集,collation-server为MySQL服务器默认排序规则。
我们需要将这些配置修改为如下形式:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
字段值utf8mb4和utf8非常类似,但是utf8只支持3字节的字符编码,而utf8mb4可以支持4字节的字符编码。
2.2 重启MySQL服务
修改完配置文件后,我们需要重启MySQL服务,使修改生效。
service mysql restart
3. 修改表和字段字符集
对于现有的数据库,我们需要修改表和字段的字符集。我们可以直接使用ALTER TABLE语句修改表,例如:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
其中,table_name为需要修改的表名,utf8mb4为需要修改为的字符集,utf8mb4_unicode_ci为需要修改为的排序规则。
需要注意的是,这会将表中所有的字段都修改为指定的字符集和排序规则。如果需要修改单个字段,可以使用以下语句:
ALTER TABLE table_name MODIFY column_name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
其中,table_name和column_name分别为需要修改的表名和字段名,100为字段长度。
4. 修改默认字符集
我们还可以修改MySQL的默认字符集,使新创建的表和字段默认使用指定的字符集。我们需要在MySQL的配置文件中,找到以下配置:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
...
在mysqld后添加以下两行配置:
[mysqld]
...
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
修改完配置文件后,重启MySQL服务即可。
5. 总结
修改MySQL的字符集是一个比较重要的操作,可以有效地避免字符集不一致引发的乱码等问题。在修改字符集时,我们需要注意数据库、表和字段的字符集要一致,并且需要重启MySQL服务才能使修改生效。