`
huobengluantiao8
  • 浏览: 1032772 次
文章分类
社区版块
存档分类
最新评论

Mysql 修改字符集

 
阅读更多

1)windows下的mysql配置文件是my.ini,一般在c:/%windowsintalled%/my.ini,在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart
2)linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf文件, 在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
net stop mysql
net start mysql
(/etc/init.d/mysql restart)

MySQL4.1以前版本的字符集由服务器默认指定,默认值是编译系统时指定的字符集,该字符集也可通过在启动服务器时指定--default-character-set来修改。这种修改会对数据表的索引造成影响,因为索引的顺序是和字符集有关的,修改字符集会使这个已排序的顺序产生错误。要解决该问题,我们要用修改后的字符集的排序顺序重建表的索引。
重建索引有以下几种方法:
1)用mysqldump导出数据,再清除表里的内容,最后用导出文件重新导入。数据表的索引将在导入数时重建。该方法适用于所有数据表类型。
2)删除索引,然后重建。用alter table命令或drop index和create index命令来完成。该方法也适用于所有数据表类型。但该方法需要我们了解重建索引的精确定义。
3)MyISAM数据表的索引可以用myisamchk程序的--recover和--quick选项加上一个用来设定新字符集的--set-character-set选项进行重建。还可以用mysqlcheck程序的--repair和--quick选项或者一个带QUICK选项的REPLACE TABLE语句来重建索引,这种方式较方便。

MySQL4.1以后的版本对字符集的支持好了很多,具有以下新增功能:
支持服务器同时使用多种字符集。
1)允许在服务器,数据库,数据表,数据列等多级别上设置不同的字符集。
2)服务器的默认字符集在编译时选定,但可在启动服务器时用--default-character-set选项来更改。
3)用ALTER DATABASE db_name DEFAULT CHARACTER SET charset来设置数据库字符集。 如果只有default参数,则使用服务器的字符集。
4)用CREATE TABLE table_name(...) CHARACTER SET = charset设置数据表字符集。如果charset为default,则使用数据表所在数据库的字符集作为数据表的字符集。
5)在数据列中,可用CHARACTER SET charset属性来设置数据列的字符集。charset不能是default,如果没有该属性,则默认使用数据表的字符集。允许设置字符集的数据列有char,varchar(不带binary属性)及TEXT类型。
6)用_charset str转换字符串常数的字符集。如:_utf8 'mysql',_latinl 'oracle'。该方法只适用于括在引号内的字符串,其它十六进制常数 、字符串表达式等可用CONVERT()函数进行转换,如:SELECT CONVERT( str USING charset)。
7)通过MySQL提供的函数可进行字符集转换和查询。
8)新增的COLLATE操作符使我们可按某一种字符集的排序顺序来处理另一种字符集的数据。如:SELECT a from t ORDER BY a COLLATE utf-8;
9)用SHOW CHARACTER SET命令可显示服务器支持的字符集列表。
10)当服务器转换到另一种字符集时,会自动对索引进行重新排序。
11)通过UTF-8和UCS2字符集提供了Unicode支持。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics