【发布时间】:2012-06-23 15:09:59
【问题描述】:
系统规格: 运行 Windows Server 2008 R2 SP1 的 VPS 64位双核2.39GHz VCPU 2GB 内存 Parallels Plesk for Windows 10.4.4 IIS 7.5 PHP 5.2.17 MySQL 5.1.56
我有一个 PHP 脚本来循环遍历一个静态文件并将每一行作为一行导入 MySQL。如果将文件一次拆分为数千行,则此方法可以正常工作,但这会产生大量手动操作。
整个文件包含大约 160,000 行要导入的行。该脚本当前通过mysql_connect / mysql_select_db连接数据库,使用mysql_query处理循环,并在循环结束时断开连接。但是,在大约 55 秒 - 1 分 35 秒之间的任何时间,客户端浏览器都会返回一个 500 Internal Server Error 页面,其中不包含任何有用的诊断信息。
我尝试增加 MySQL、PHP、IIS 的最大连接时间,甚至是 winsock 的最大用户套接字,但无济于事。
我尝试为每个插入查询执行与 MySQL 的连接/断开连接,但这会导致与服务器的数千个连接随后卡在“TIME_WAIT”状态,并返回“无法连接到服务器”错误,大概是由于剩余的插槽不足。我也尝试过 mysql 和 mysqli 扩展。
我查看了所有可以找到的 IIS 和 MySQL 日志,但没有看到任何有助于找到原因的信息。
最后两次尝试分别插入了 33,979 和 78,173 行。
谁能提供帮助?
谢谢。
** 更新 **
这一定是 IIS 问题。我已将脚本转换为通过命令行 PHP 运行,它可以毫无问题地处理整个文件。
【问题讨论】:
标签: iis-7.5 php-5.2 mysql-5.1 windows-server-2008-web