新しいCentOSインストール。
大きなDB(2GBのsqlファイル)のインポートを実行していて、問題がありました。SSHクライアントは接続を失い、インポートはフリーズしたようです。別のウィンドウを使用してmysqlにログインしましたが、インポートが特定の3M行テーブルでスタックしているように見えました。
だから私は試した
DROP DATABASE huge_db;
15〜20分後、何もありません。別のウィンドウで、私がやった:
/etc/init.d/mysqld restart
メッセージDROP DBウィンドウ:SERVER SHUTDOWN。その後、実際に物理サーバーを再起動しました。
mysqlに再度ログインしてチェックし、データベースがまだそこにあった、実行した
DROP DATABASE huge_db;
再び、そして再び私はすでに約5分待っています。
繰り返しますが、新規インストールです。huge_db
(システムDBS以外の)唯一のDBです。私は以前にこれほど速くdbをドロップしたことを誓いますが、多分間違っています。
データベースを正常に削除しました。30分ほどかかりました。また、mysqldumpのインポートが死んだと思ったとき、私は間違っていたと思うことに注意してください。端末の接続は失われましたが、プロセスはまだ実行中だったと思います。インポート中テーブル(3M行テーブル)を削除した可能性が最も高く、おそらくデータベース全体の3/4を削除しました。「top」がmysqlを使用してメモリを3%しか使用していないことを示していたのに、それ以上使用する必要があるように思えたのは誤解を招きました。
DBの削除には30分かかりました。そのため、サーバーを再起動する必要がなく、DROPが完了するのを待つこともできましたが、DROPクエリの取得に対するmysqlの反応はわかりません。 mysqldump経由でインポートするのと同じdb。
それでも、疑問が残ります。すべてのdbファイルを削除し、information_schemaからDBへのすべての参照を削除するだけで2 GBのデータベースを削除するのに30分以上かかるのはなぜですか?大したことは何ですか?
DROP DATABASE
コマンドを発行すると、すべての接続が閉じられるまでサーバーは続行しません。