请问mysql版本不同,数据如何备份恢复

2016-07-07 15:30 来源:www.chinab4c.com 作者:ecshop专家

今天换了个数据库空间,就把原先的数据表备份了一下,在新空间导入备份的时候,提示原来是4.05,新空间mysql版本是5.0几,然后就提示错误了,请问这种情况如何才能正确备份并导入数据呢?

多谢!!!

回答:
你是用phpadmin备份和导入的吗?

按楼主的说法,应该是在老网站后台直接备份,然后到新网站恢复数据库的方法进行的网站搬家。
因为新老网站所用数据库版本不同导致的情况。
我建议:
1、备份数据文件
2、打开数据文件,就是那些xxx_1.sql、xxx_2.sql、、、文件,将头部“-- MYSQL SERVER VERSION”后面的MYSQL版本改为新网站数据库MySQL的版本,然后进行恢复。
新网站MySQL版本以登录你新网站后台“起始页”=》“系统信息”=》“MySQL 版本”显示的MySQL版本为准

请用帝国备份王。

因为我没有数据库的管理界面,只是得到了一个数据库地址和账户,所以没法直接操作数据库,我只能从ec后台备份。

我试试3楼朋友的方法看看行不行

3楼的方法似乎不行。数据库报错。我再想想其它办法

4楼正解,是好办法

发现问题所在了,是程序的问题

ECShop_V2.7.0_UTF8_Release0720这个版本

在admin/database.php文件 sql_import()这个函数

当 $db_ver > '4.1' 时

有这样一条语句:
/* 建表时缺 DEFAULT CHARSET=utf8 */
$ret[$i] = $ret[$i] . 'DEFAULT CHARSET='. str_replace('-', '', EC_CHARSET);

default前少一个空格,造成sql语句错误
在这里添加一个空格就导入成功了

/* 建表时缺 DEFAULT CHARSET=utf8 */
$ret[$i] = $ret[$i] . ' DEFAULT CHARSET='. str_replace('-', '', EC_CHARSET);


这也行!

~~!
现在的ec用的很多db的版本都超过4.1,没出现此问题哦

帝王备份,很好用的

帝王备份安装在哪里啊?需要新开空间吗?

不用,你可以到网上找下帝国备份。