数据库字符集问题

 
文章分类:数据库 
1.列出MYSQL支持的所有字符集: 
SHOW CHARACTER SET; 


2.当前MYSQL服务器字符集设置 
SHOW VARIABLES LIKE 'character_set_%'; 


3.当前MYSQL服务器字符集校验设置 
SHOW VARIABLES LIKE 'collation_%'; 


4.显示某数据库字符集设置 
show create database 数据库名; 


5.显示某数据表字符集设置 
show create table 表名; 


6.修改数据库字符集 
alter database 数据库名 default character set 'utf8'; 


7.修改数据表字符集 
alter table 表名 default character set 'utf8'; 


8.建库时指定字符集 
create database 数据库名 character set gbk collate gbk_chinese_ci; 


9.建表时指定字符集 
CREATE TABLE `mysqlcode` ( 
`id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`content` VARCHAR( 255 ) NOT NULL 
) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;


库字符集,在my.cnf中缺少了如下代码: 
[client] 
default-character-set=utf8 
[mysqld] 
default-character-set=utf8 




如果不加以上代码,那么即便MYSQL编译安装时指定的编码是UTF8,那么在建库时其默认编码仍是LATIN1,而由于字符集的继承性,库中的表也是LATIN1的了。 


 


windows下的方法是:
1、windows系统


win下可使用类似如下语句处理。通过命令行进入mysql/bin所在目录。
D:\usr\mysql41\bin>mysqldump -uroot -p --quick --compatible=mysql40 --default-character-set=latin1 --extended-insert=FALSE test2 > d:\zzz.sql


test2是你想导出数据的数据库名,d:\是路径,设置成你希望的路径就行了,zzz.sql是随意命名的文件,名称随意,只要有.sql后缀名就行了。


程序会提示你输入root的用户密码(如果存在密码的话),输入,程序开始导出。500MB的数据2-3分钟就完成了。




2、第二步,通过phpmyadmin建立一个新库,库名:test ,采集字符集设定为utf8-general-li 或gb2312


3、将备份出来的sql文件导入新数据库。


D:\usr\mysql41\bin>mysql -uroot -p --default-character-set=utf8 test < d:/zzz.sql 

D:\usr\mysql41\bin>mysql -uroot -p --default-character-set=gb2312 test < d:\zzz.sql 


这一步花的时间相对较长,200MB数据花了10分钟左右。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值