要将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服务器的配置文件,指定需要的字符集。
在对应的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服务器,使配置生效。
目前的编码方式是在新建数据库和表时自动设置的,因此在修改编码方式后,需要手动修改已生成的数据库与表。
可以使用 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
:
SHOW VARIABLES LIKE 'character_set_%';
/etc/mysql/my.cnf
[mysqld]
init_connect='SET NAMES gbk'
character-set-server = gbk
collation-server = gbk_chinese_ci
sudo service mysql restart
ALTER DATABASE database_name CHARACTER SET gbk COLLATE gbk_chinese_ci;
示例二:将表字符集修改为 utf8
:
SHOW VARIABLES LIKE 'character_set_%';
/etc/mysql/my.cnf
[mysqld]
init_connect='SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_general_ci
sudo service mysql restart
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
本文链接:http://task.lmcjl.com/news/14093.html