0

我们创建了一个导入脚本,将大约 120GB 的数据导入 MySQL 数据库。数据保存在几百个目录中(都是独立的数据库)。每个目录都包含具有表结构和表数据的文件。

问题是;它可以在我的本地计算机上使用实际数据的子集,但是当在服务器上运行导入时(这需要几天时间)。并非所有表都已创建(即使是在本地测试的表)。奇怪的是,脚本在服务器上运行时在创建表时没有显示任何错误。

以下是脚本如何工作的高层次:

  1. 查找代表数据库的所有目录
  2. 创建所有数据库
  3. 每个数据库循环遍历表:创建表,填充表

在 gist 上添加了代码:https ://gist.github.com/3349872

4

2 回答 2

0

添加更多日志记录以查看成功的步骤,因为您可能遇到内存使用或执行时间问题。

为什么不从给定的 CVS 文件创建 sql 文件,然后在 bash 中正常导入?

mysql -u root -ppassword db_something< db_user.sql

于 2012-08-14T19:17:47.180 回答
0

哎呀,问题出在代码中。惊人的愚蠢错误。

在所有文件的子集上测试代码时,所有可用的表信息和表内容。当未创建表计数时,该函数进入日志记录语句并返回。在真实数据上,这是一个错误,因为有些文件没有数据,也没有结构,所以在创建几个表之后,某个数据库的表的创建出错并返回,因此没有创建其他表。

于 2012-08-21T09:32:57.227 回答