关键词

查看修改mysql编码方式让它支持中文(gbk或者utf8)

要将MySQL编码方式修改为支持中文,需要开发人员做如下操作:

1. 确定当前MySQL服务器默认编码方式

首先需要确定当前MySQL服务器默认编码方式,可以输入以下命令查看:

mysql> SHOW VARIABLES LIKE 'character_set_%';

执行上述命令后可以看到一系列的字符编码,其中比较重要的有:

  • character_set_client: 客户端连接MySQL服务器时使用的默认字符集
  • character_set_connection: MySQL服务器与客户端连接时使用的默认字符集
  • character_set_database: 当前数据库的默认字符集
  • character_set_results: 查询结果集的字符集

如果上述字符集还没有被设置为 utf8gbk,就需要修改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;

本文链接:http://task.lmcjl.com/news/14093.html

展开阅读全文