【发布时间】:2016-01-28 06:16:02
【问题描述】:
我正在尝试将大约 800 万条记录从 access 数据库插入到 GoDaddy 中的 mysql 数据库中。
我构建了一个桌面 Java 应用程序来管理每次分块 5000 条记录的插入。我使用 Laravel 5.1 来管理服务器中的插入。因此,基本上,java 应用程序向 laravel php 路由发送请求,然后它负责直接插入我的 MySQL 数据库。
编辑:人们会将数据直接插入到 Access 中,所以我必须观察 MDB 文件的变化。这就是为什么我不能只从 Access 导出并导入 MySQL。
第一部分记录插入成功,但是当我发送另一个请求时,我得到了这个错误:
2015-10-28 10:43:57.844 java[3475:280209] Communications error: <OS_xpc_error: <error: 0x7fff7298bb90> { count = 1, contents =
"XPCErrorDescription" => <string: 0x7fff7298bf40> { length = 22, contents = "Connection interrupted" }
}>
Got xpc error message: Connection interrupted
org.apache.http.NoHttpResponseException: api.mydomain.com:80 failed to respond
【问题讨论】:
-
请求多长时间才会出错?如果请求超时,可能会发生这种情况。
-
您对数据库所在的服务器有 ssh 访问权限吗?
-
为什么不为每 2000 条记录生成一条插入语句并一次运行一条呢?插入数据库将更加有效。使用 laravel 插入记录将花费更多的资源和时间......最坏的情况是,如果您没有直接访问数据库的权限,请让您的 php 执行语句 - 但不要将内容加载到 Eloquent 模型中并插入他们分别。
-
如果我是你,我会一次只插入其中的几个,然后重新打开连接并编写另一包。 800 万条记录对我来说似乎太多了。
-
撇开技术细节不谈,我会从你发布的错误日志中隐藏你的红色、甜蜜和粘人的雇主......
标签: java php mysql ms-access laravel-5