mysql数据库中数据库移植中的乱码问题

mysql数据库中数据库移植中的乱码问题

ID:9416745

大小:50.50 KB

页数:3页

时间:2018-04-30

mysql数据库中数据库移植中的乱码问题_第1页
mysql数据库中数据库移植中的乱码问题_第2页
mysql数据库中数据库移植中的乱码问题_第3页
资源描述:

《mysql数据库中数据库移植中的乱码问题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MySQL数据库中数据库移植中的乱码问题>>教育资源库  MySQL移植含有中文的数据时,很容易出现乱码问题。很多是在从MySQL4.x向MySQL5.x移植的时候出现。MySQL的缺省字符集是latin1,在使用MySQL4.x的时候,很多人都是用的latin1字符集。而当使用MySQL5时往往愿意使用UTF-8。那么我们的任务是不是要把数据中的字符从latin1转为UTF-8呢?不是的。  用一句不大准确,但又比较形象的说法是,在之前的系统中,我们是用latin1保存了使用GB系列字符集(GBK、GB2312等)的汉字。怎么这样说呢?mysql>shoysql

2、>shoysqldump出来以后,再用MySQL进行导入时,还要告诉MySQL,当前的数据是gb系列的字符集,比如gbk。这样,MySQL负责把数据由gbk转换为UTF-8,保存到数据库中。  如何告诉MySQL导入的SQL是什么字符集呢,一种方法是用--default-character-set,但有时会起不到实际作用。这是因为mysqldump出来的文件里有setnames语句。比如:headEA192.060913.sql--MySQLdump10.10----Host:localhostDatabase:EA192---------------------

3、-----------------Serverversion5.0.16-standard-log/*!40101SETOLD_CHARACTER_SET_CLIENT=CHARACTER_SET_CLIENT*/;/*!40101SETOLD_CHARACTER_SET_RESULTS=CHARACTER_SET_RESULTS*/;/*!40101SETOLD_COLLATION_CONNECTION=COLLATION_CONNECTION*/;/*!40101SETNAMESlatin1*/;  /*!*/是MySQL特有有句法,在其他数据库会被当成CREATE

4、TABLE`test`(`a`varchar(100)defaultNULL)ENGINE=InnoDBDEFAULTCHARSET=latin1;  这里仍然有个CHARSET=latin1,它将导致新创建的表的缺省字符集是latin1,而不是我们想要的UTF8。  怎么办呢,如果数据量不大的话,可以考虑用编辑器把它去掉或者改成UTF8,如果数据量大的话可以考虑用sed,但可能仍然时间比较长。  还有一种办法就是mysqldump,使用--create-options=false,不导出表的创建属性。但如果导出的表的存储引擎不同的话就有问题了,因为引擎类型(innod

5、b、myisam等)都被忽略了。  此外,mysqldump导出时,不要使用-B,而是直接指定一个database名字,目的是不出现CREATEDATABASE语句,因为其中也可能会有缺省字符集的子句,会影响那些未在CREATETABLE中指定字符集的表。如果你导出的SQL中有CREATEDATABASE,那么需要注意一下有没有字符集的子句,如果有的话,也需要修改。  好了,通过上述方法导出或者处理过的导出文件可以使用mysql--default-character-set=gbk来导入了。上一页12>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。