当我查看运行以下脚本的 php 页面后,我的网络浏览器中立即出现 500 内部服务器错误:
exec(“mysql -h db.server.com -u myuser -pmypass db < db.sql”);
mysql 命令执行时间很长,因为 db.sql 是一个非常大的文件,需要花费一些时间才能将其发送到外部数据库服务器。执行该命令时,我的共享主机服务上的所有其他 php 页面都会出现 500 内部服务器错误。
有没有办法消除 500 内部服务器错误并运行我的其他 php 页面?有没有更好的方法来导入我的 sql 文件?
答案1
让 php 程序将 SQL 文件保存到远程计算机上的临时位置,并运行 cronjob 在该位置查找文件并将其吸入 MySQL。
另外,设置 php 脚本以在文件开始上传时在同一目录中创建一个文件,这样您就可以编写 cronjob 来忽略它,以免在文件上传时尝试读取它。
答案2
您能从 shell 而不是网页运行命令吗?