0

我正在将 txt 文件中的数据导入 mysql(通过 php 脚本)。这个转储很大,分为 10 个文件。我导入了第一个和第二个,一切正常 - 我可以看到 phpmyadmin 等中的所有条目。大约有 700 000(?)个条目。当我开始导入第三个时,发生了一些奇怪的事情 - 永远加载的导入脚本。我离开它来完成它的工作,但是经过很长时间(而且由于文件与以前的文件大小相同,我认为它不应该花这么长时间)我在浏览器中单击“停止”以停止我的脚本。然后,我尝试访问 phpmyadmin... 永远加载并且永不停止。试图加载我的网站(它在我的本地 apache2 上)......永远加载。

/etc/init.d/mysql restart
Stopping MySQL database server: mysqld

...也需要永远并且永远不会完成。它从未真正停止过它。不过,我能够成功重新启动 apache。

确实有备份(快照 - 它是 vm),但我正试图弄清楚发生了什么。为什么整个 apache会有这种反应?发生了什么?如何防止下次发生?我可以恢复到快照,导入有效的 1 和 2 件,然后尝试第 4 个......但是如果第 4 个也会破坏一切怎么办?

我正在使用 Debian Lenny、Apache 2,并且我正在通过 /etc/hosts 和 apache 配置文件中配置的“虚拟”域访问我的站点(是的,我也尝试通过 127.0.0.1 访问它......不起作用任何一个)。


我试过这个:

killall mysqld
debian# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld failed!
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! failed!
4

1 回答 1

0

这里可能会发生几件事。通过以下内容找到更多线索 -

  • 确保你没有填满你的 var 分区。发出“df -h”并查看是否有 100% 已满。
  • 检查 mysql 错误日志 - 可能位于 /var/log/mysql.err 或类似内容中。
  • 你总是可以通过发出'mysql -uroot -e“show processlist”'来查看mysql中发生了什么你需要根据你的mysql设置将“-uroot”部分更改为有效用户(“-u用户名-p")

此外,killall 不是关闭 mysql 的好方法。尝试“sudo /etc/init.d/mysqld stop”或“mysqladmin -uroot shutdown”。一般来说,尽量不要使用killall。如果你必须杀死,试试“kill [mysql's pid]”或“ps -ef|grep mysql|awk '{print $2}'|xargs kill”

于 2009-08-05T03:44:46.310 回答