mysql数据库导入大sql文件

这几天帮一朋友迁移网站,遇到了超大sql文件mysql还原的问题,这个sql文件足有300多M。

找到了网上一些还原的方法。

如果能登录shell的话,可以用mysql命令行工具或者mysqlimport还原,这里有个介绍 Wordpress 超大数据库的导入

也可以使用phpmyadmin等工具还原,但是这种工具通常都有文件大小限制,比如2M,主机商可以在php.in中配置此参数。

http://www.dreamdu.com/blog/2008/10/20/big_sqlfile_import_mysql/

编写程序将超大sql文件导入mysql数据库

我现在是即没有shell权限,又无法使用phpmyadmin还原!怎么办呢?我想到了一个方法:

1,编写程序(sql2php.exe),做下面工作

2,把sql文件改为php文件,将sql语句全部改为可执行的php语句,例如:

sql语句:

insert...

php语句:

$sql = "insert...";
$result=mysql_query($sql, $conn) or die(mysql_error());

3,将sql文件分开,每个表生成一个文件,而且如果文件大于20M的话,继续分成1号文件,2号文件…,保证每个文件不大于20M。

4,通过ftp上传到服务器,编写一个遍历所有文件的php程序,运行所有上面生成的php文件,数据库导入成功。

最初我使用php编写了一个程序拆分sql数据库,但是发现这简直是一场噩梦,不是php死了,就是浏览器死了,而且cpu总是居高不下,看来这种浏览器下php处理大文件的方式不好使。(也可能是我水平问题)于是我抛弃脚本语言使用应用程序搞了一个sql2php.exe,而且单独开了一个线程搞定了此事,我发现处理300多M的文件才用了不到2分钟,晕死了!前面搞php程序分解文件并测试我竟然花费了2个小时!!用sql2php.exe搞还没用半小时!

具体方法已经介绍完了,理论上讲这种方法可以导入还原任意大小的sql文件。有和我遇到同样问题的朋友可以自己编写相关的程序,如果不会编写程序的朋友也可以花20元钱买我这个小程序sql2php.exe与其源代码。我也尝试收费一把,哈哈。可以使用支付宝支付,见付款方式。20元钱一个sql2php.exe并附带sql2php.exe的源代码应还算合理吧,而且我可以做些简单的(只包括导入数据)技术支持。在我们这20元正好一顿午饭,就算请我一对儿,呵呵。

Random Posts

作者: 可爱的猴子
原载: 可爱的猴子的blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

发表评论

mysql数据库导入大sql文件“4 评论”(只显示最后20条评论)

  1. 华丽一射 说:


    猴子哥,gtalk和Gmail登陆不了啊,怎么回事啊。
    我是电信!

    [Reply]

    可爱的猴子 reply on 2008-10-24 17:22:

    电信好像最近把这些都封了,昨天也有人和我说过。 找代理吧。

    [Reply]

  2. 鬼仔 说:

    mysqldumper不错。FTP传上去,然后再还原,不过没有试过300M的

    [Reply]

    可爱的猴子 reply on 2008-10-21 21:41:

    还真没用过这个工具,下次有机会还原网站,再试试这个工具。

    [Reply]