0

txtファイルからmysqlに(phpスクリプトを介して)データをインポートしていました。このダンプは巨大で、10 個のファイルに分割されています。1 つ目と 2 つ目をインポートしたところ、すべて問題ありませんでした。phpmyadmin などですべてのエントリを確認できました。約 700 000 (?) のエントリがありました。3 番目のものをインポートし始めたとき、奇妙なことが起こりました - インポート スクリプトが永久にロードされました。仕事を完了するためにそれを残しましたが、非常に長い時間が経過した後(ファイルは以前の部分と同じサイズだったので、それほど長くはかからないと思いました)、ブラウザで「停止」をクリックしてスクリプトを停止しました。次に、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% いっぱいになっているかどうかを確認します。
  • /var/log/mysql.err などにある mysql エラー ログを確認してください。
  • 「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 に答える