修改数据库字符集
2013-10-11 12:01
197 查看
u 不能直接用ALTER DATABASE CHARACTER SET xxx进行字符集的修改,这样原有数据会乱码的。
u 对于已有数据的字符集调整,需要先导出数据,调整字符集后在导入
总结
常用字符集
ASCII
ISO-8859-1
GB2312
GBK
UTF-8
MySQL的字符集选择
字符集选择:
支持国际化:选择Unicode字符集,目前就是UTF-8。
中文数据量大:GBK。
校对规则选择:
基本上都是使用默认的校对规则。
MySQL字符集设置
有4个级别的默认设置:
服务器级
可在my.ini中设置(Linux是my.cnf):
- [mysqld]
default-character-set=gbk
默认校对规则使用该字符集的校对规则。
- 显示当前服务器的字符集:SHOW VARIABLES LIKE 'character_set_server';
- 显示当前服务器的校对规则: SHOW VARIABLES LIKE 'collation_server';
数据库级
创建数据库的时候指定,也可以用ALTER DATABASE修改。
没有指定时,使用服务器的字符集和校对规则。
表级
创建表的时候指定,也可用ALTER TABLE修改。
没有指定时,使用数据库的字符集和校对规则。
列级
很少使用。
MySQL连接字符集
在实际的应用程序访问过程中,还需要设置连接字符集。对于客户端和服务器的交互操作,还提供了3个不同的参数:
character_set__client: 客户端的字符集
character_set_connection: 连接的字符集
character_set_results: 返回结果的字符集
通常这三个字符集是要相同的,才能保证数据的正确性。
客户端访问MySQL服务器的过程
client发送一个查询:服务器收到查询,将查询串从character_set_client转换到character_set_client转换到character_set_connection,然后执行查询;服务器将结果数据转换到character_set_results字符集后发送回客户端。
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
设置变量character_set__client、character_set_connection:
需要在mysql>中进行设置,如下:
Set character_set__client=gbk;
Set character_set_connection=gbk;
u 对于已有数据的字符集调整,需要先导出数据,调整字符集后在导入
总结
常用字符集
ASCII
ISO-8859-1
GB2312
GBK
UTF-8
MySQL的字符集选择
字符集选择:
支持国际化:选择Unicode字符集,目前就是UTF-8。
中文数据量大:GBK。
校对规则选择:
基本上都是使用默认的校对规则。
MySQL字符集设置
有4个级别的默认设置:
服务器级
可在my.ini中设置(Linux是my.cnf):
- [mysqld]
default-character-set=gbk
默认校对规则使用该字符集的校对规则。
- 显示当前服务器的字符集:SHOW VARIABLES LIKE 'character_set_server';
- 显示当前服务器的校对规则: SHOW VARIABLES LIKE 'collation_server';
数据库级
创建数据库的时候指定,也可以用ALTER DATABASE修改。
没有指定时,使用服务器的字符集和校对规则。
表级
创建表的时候指定,也可用ALTER TABLE修改。
没有指定时,使用数据库的字符集和校对规则。
列级
很少使用。
MySQL连接字符集
在实际的应用程序访问过程中,还需要设置连接字符集。对于客户端和服务器的交互操作,还提供了3个不同的参数:
character_set__client: 客户端的字符集
character_set_connection: 连接的字符集
character_set_results: 返回结果的字符集
通常这三个字符集是要相同的,才能保证数据的正确性。
客户端访问MySQL服务器的过程
client发送一个查询:服务器收到查询,将查询串从character_set_client转换到character_set_client转换到character_set_connection,然后执行查询;服务器将结果数据转换到character_set_results字符集后发送回客户端。
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
设置变量character_set__client、character_set_connection:
需要在mysql>中进行设置,如下:
Set character_set__client=gbk;
Set character_set_connection=gbk;
相关文章推荐
- MySQL查看和修改数据库的字符集
- navicat 修改数据库字符集、字符排序规则、数据库引擎
- 修改数据库字符集
- MySQL批量修改数据库的字符集
- MySql修改数据库,表和字段的字符集
- oracle 10g 修改数据库字符集
- mysql修改数据库编码(数据库字符集)和表的字符编码的方法
- [实验]Data Guard 环境下修改数据库字符集
- mysql修改root密码以及设置数据库字符集
- 【Oracle XE系列之一】Windows 7 64位安装Oracle XE(32位)数据库(REG_XE报错、字符集、修改8080端口等)
- ORACLE-工作常用配置及命令记录-导入sql、unl文件、查看数据库状态、修改字符集等
- Oracle 设置数据库字符集以及修改服务端字符集
- 数据库字符集修改时报错ORA-12712: new character set must be a superset of old character set
- ORACLE 修改数据库的字符集编码为UTF-8
- 修改数据库字符集以及导入数据
- 解决Oracle数据库里的中文数据显示乱码的问题,修改数据库的字符集。
- 修改数据库字符集
- Oracle修改数据库字符集
- Oracle 10g修改数据库字符集
- 修改数据库字符集为'us7ascii'