mysql数据恢复时出错

数据库 December 04 2012


今天将测试数据带回来,准备导入自己家用电脑的mysql中,结果报了两个错:1.数据本来是.psc文件,即用navicat备份出来的mysql数据文件。对这个备份文件进行还原时,报错:[Msg] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE) ENGINE=MyISAM DEFAULT CHARSET=utf8’ at line 9不管它,先将这个文件中的sql提取出来,最后通过navicat工具将数据转换成.sql文件,这个文件想必大家都知道的了。然后运行此sql文件,依然报上面的错误,也就是说,我只是把数据文件格式转换了而已,实际问题依然如故。网上查找发现,是由于不同版本mysql所使用的备份sql格式不同引起的,我的测试数据是通过Server Version: 5.5.13导出,而现在的机器上是server version: 5.0.24-community,解决办法是将“USING BTREE”关键字往前移,比如:原SQL:DROP TABLE IF EXISTS `oa_linkman`;CREATE TABLE `oa_linkman` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `Index_user` (`user_id`) USING BTREE )ENGINE=InnoDB DEFAULT CHARSET=utf8; 转换后SQL:DROP TABLE IF EXISTS `oa_linkman`;CREATE TABLE `oa_linkman` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `Index_user` USING BTREE (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 这样处理后,就不会再报这个错误了。2.继续导入,不久便报[Err] 2006 - MySQL server has gone away。查找发现,是由于mysql默认一次导入的数据包文件只有1M,这显然太小,找到mysql安装路径,相应目录下面有个文件my.ini,在此文件最后加入一行max_allowed_packet=10M这表示允许导入最大文件可达10M,最后修改保存,OK,别忘了重启一下mysql服务器。

原文链接:http://ichatter.cn/mysql-e6-95-b0-e6-8d-ae-e6-81-a2-e5-a4-8d-e6-97-b6-e5-87-ba-e9-94-99.html


欢迎来到阿J小虫的博客

Follow @ichatter on GitHub

最新评论

推荐内容