欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【MySQL 4.1数据库中数据转换注意事项】,下面是详细的分享!
MySQL 4.1数据库中数据转换注意事项
mysql 4.1增加了编码的支持,所以在转换旧数据的时候稍微麻烦一些,但只要注意以下几点,基本没问题的:
1、转换之前一定要先把原有数据dump出来,一般原有数据都是gb2312编码吧,dump命令如下:
mysqldump -u -p database –add-drop-table –extended-insert
–add-drop-table是为了导入的时候省去建表环节,–extended-insert是为了防止在导入的时候一个sql语句过大的情况,想想你的上千条记录写在一条sql语句中是多么的恐怖。
这里假定原有数据库是gb2312编码,需要转换为utf8编码,其它编码之间的转换类似。
2、修改dump出来的sql文件,用Emeditor或iconv把文件的编码转换为utf-8,注意最好不要那个什么“Unicode Signature(BOM)”,因为mysql.exe不认的。再把文件中的gbk_bin替换为utf8_general_ci,把gbk替换为 utf8,然后在文件最前面加上set names utf8;
带上BOM,mysql不识别的错误大体如下:
ERROR 1064 (42000) at line 1: You have an error
in your SQL syntax; check the ma
nual that corresponds to your MySQL server version
for the right syntax to use n
ear ‘?
’ at line 1
3、重新建mysql库,然后导入备份的sql语句,导入命令如下:
mysql -u -p database < dumpdata.sql
4、如果是以前导出的文件,导入的时候遇到错误:
Got a packet bigger than ‘max_allowed_packet’ bytes
or
ERROR 1153 (08S01) at line 616: Got a packet
bigger than ‘max_allowed_packet’ bytes
就需要修改mysql的最大允许包大小了,编辑my.ini,在[mysqld]部分(不在这部分没用)添加一句:
set-variable=max_allowed_packet=10485760
重启mysql服务就可以了,我这里设置的是大约10MB。到这里数据导入基本就完成了,接下来就是根据各个应用的不同来调整了,一般有的系统已经支持了,但还有的不支持,不过调整方法大概分以下几类:
1、在数据库连接后面加上
mysql_connect(….
mysql_query(”set names ‘utf8′”);
这种情况最多,比如Brim什么的。
2、将语言文件或模板文件的编码设置为utf-8,注意是直接把文件编码转换了就可以,内容不用管,这样的有phpwind, mantis。使用工具可以是iconv,在这里可以下载。
iconv -f gb2312 -t utf-8 gb2312.html > utf-8.html
3、修改模板文件,设置HTML中的
原先是gb2312编码的系统多半需要改这个。
以上所分享的是关于MySQL 4.1数据库中数据转换注意事项,下面是编辑为你推荐的有价值的用户互动:
相关问题:mysql数据类型转换
答:mysql DATE值的格式是'YYYY-MM-DD' java中Date值得格式是是'YYYY-MM-DD HH:mm:ss' 你需要在java中自己日期转换方法,或者把mssql的字段类型改成datetime >>详细
相关问题:mysql数据库如何转换成.sql文件?
答:mysql数据库转换成.sql文件步骤如下: 1. 导出SQL脚本 在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL脚本。 2. 用phpMyAdmin工具 导出选项中,选择导出“结构”和“数据”,不要添加... >>详细
相关问题:mysql如何导出、导入数据库和表,详细一点
答:MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
