mysql4.1数据转换的实现方法

54次阅读
没有评论

共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要讲解了“mysql4.1 数据转换的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“mysql4.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‘???

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */’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’by

tes

就需要修改 mysql 的最大允许包大小了,编辑 my.ini,在 [mysqld] 部分(不在这部分没用)添加一句:

set-variable=max_allowed_packet=10485760

重启 mysql 服务就可以了,我这里设置的是大约 10M。

到这里数据导入基本就完成了,接下来就是根据各个应用的不同来调整了,一般有的系统已经支持了,但还有的不支持,不过调整方法大概分以下几类:

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 编码的系统多半需要改这个。

感谢各位的阅读,以上就是“mysql4.1 数据转换的实现方法”的内容了,经过本文的学习后,相信大家对 mysql4.1 数据转换的实现方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1567字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)