我们创建了一个导入脚本,可将大约120GB的数据导入MySQL数据库。数据保存在几个hunderd目录中(都是分开的数据库)。每个目录包含具有表结构和表数据的文件。
问题在于;它可以在我的本地计算机上使用实际数据的子集,但是在服务器上运行导入时(需要几天时间)。并非所有表都已创建(即使是在本地测试的表)。奇怪的是,当在服务器上运行时,脚本在创建表时不会显示任何错误。
以下是高级别脚本的工作原理:
在要点上添加了代码:https://gist.github.com/3349872
答案 0 :(得分:0)
添加更多日志记录,以查看由于您可能遇到内存使用或执行时间问题而成功执行的步骤。
为什么不从给定的CVS文件创建sql文件,然后在bash中进行正常导入?
mysql -u root -ppassword db_something< db_user.sql
答案 1 :(得分:0)
奥奇,问题在于代码。惊人的愚蠢错误。
在所有文件的子集上测试代码时,所有表信息和表内容都可用。当没有创建表计数时,该函数输入一个日志语句而不是返回。在真实数据上这是一个错误,因为有文件没有数据,没有结构,所以在创建几个表之后,某个数据库的表的创建出错了并且返回了,因此没有创建其他表。