要将MySQL编码方式修改为支持中文,需要开发人员做如下操作:
1. 确定当前MySQL服务器默认编码方式
首先需要确定当前MySQL服务器默认编码方式,可以输入以下命令查看:
mysql> SHOW VARIABLES LIKE 'character_set_%';
执行上述命令后可以看到一系列的字符编码,其中比较重要的有:
character_set_client
: 客户端连接MySQL服务器时使用的默认字符集character_set_connection
: MySQL服务器与客户端连接时使用的默认字符集character_set_database
: 当前数据库的默认字符集character_set_results
: 查询结果集的字符集
如果上述字符集还没有被设置为 utf8
或 gbk
,就需要修改MySQL服务器的配置文件,指定需要的字符集。
2. 修改MySQL服务器配置文件
在对应的MySQL服务器配置文件中,可以设置以下几个字符编码相关参数:
[client]
default-character-set = utf8
[mysqld]
init_connect='SET NAMES utf8’
character-set-server = utf8
collation-server = utf8_general_ci
其中:
character-set-server
参数设置了MySQL服务器默认使用的字符集collation-server
参数设置比较规范化的字符,防止数据崩溃init_connect
参数设置了默认连接MySQL服务器时,会调用SET NAMES
设置数据库的字符集
修改完成后,需要重启MySQL服务器,使配置生效。
3. 转换数据库中表的字符集
目前的编码方式是在新建数据库和表时自动设置的,因此在修改编码方式后,需要手动修改已生成的数据库与表。
可以使用 ALTER TABLE
命令将数据库中所有表的编码方式都改成 utf8
,使用方法如下:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
其中 table_name
为需要转换的表名。
如果只是想修改数据库的字符集,可以使用以下命令:
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
其中 database_name
为需要修改的数据库名。
示例
示例一:将数据库字符集修改为 gbk
:
- 确认当前MySQL服务器字符集:
SHOW VARIABLES LIKE 'character_set_%';
- 修改MySQL配置文件
/etc/mysql/my.cnf
[mysqld]
init_connect='SET NAMES gbk'
character-set-server = gbk
collation-server = gbk_chinese_ci
- 重启MySQL服务器:
sudo service mysql restart
- 修改数据库字符集:
ALTER DATABASE database_name CHARACTER SET gbk COLLATE gbk_chinese_ci;
示例二:将表字符集修改为 utf8
:
- 确认当前MySQL服务器字符集:
SHOW VARIABLES LIKE 'character_set_%';
- 修改MySQL配置文件
/etc/mysql/my.cnf
[mysqld]
init_connect='SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_general_ci
- 重启MySQL服务器:
sudo service mysql restart
- 修改表的字符集:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:查看修改mysql编码方式让它支持中文(gbk或者utf8) - Python技术站