New CentOS installation.
I was running an import of a large DB (2GB sql file) and had a problem. The SSH client seemed to lose the connection and the import seemed to freeze. I used another window to login to mysql and the import appeared to be dead, stuck on a particular 3M row table.
So I tried
DROP DATABASE huge_db;
15-20 minutes later, nothing. In another window, I did:
/etc/init.d/mysqld restart
The DROP DB window messaged: SERVER SHUTDOWN. Then I actually restarted the physical server.
Logged back into mysql, checked and the db was still there, ran
DROP DATABASE huge_db;
again, and again I'm waiting already about 5 minutes.
Once again, it's fresh installation. The huge_db
is the only db (other than system dbs). I swear I've dropped db's this large before and quickly, but maybe I'm wrong.
I've successfully dropped the database. It took something like 30 minutes. Also note that I think I was mistaken when I thought the mysqldump import was dead. The terminal connection was lost, but I think the process was still running. I most-likely killed the import mid-table (the 3M row table) and probably 3/4 of the way through the whole db. It was misleading that "top" showed mysql using only 3% of memory, when it seemed like it should be using more.
Dropping the DB ended up taking 30 min, so, again, I might not have had to restart the server and possibly could have just waited for the DROP to finish, but I don't know how mysql would react to getting a DROP query for the same db that it's importing via mysqldump.
Still, the question remains, why does it take 30min+ to DROP a 2GB database when all it should have to do is delete all the db files and remove all references to the DB from information_schema? What's the big deal?