はじめに
スクールのカリキュラムやドリルで作成した不要なデータベースを削除する際にいろいろと調べましたので、備忘録として残しました。
(誤って削除したデータベースは元に戻せないと思ったほうがいいので、コマンドの実行は自己責任でお願いします。)
作業手順
MySQLにアクセス
以下のコマンドでMySQLにアクセス。(どのディレクトリでも構いません)
$ mysql -u root -p
パスワードを聞かれるので入力。設定してない場合は「Enterキー」を押して接続。
DB一覧を確認
まずは「SHOW DATABASES」でDBの一覧を確認。
mysql> SHOW DATABASES;
一覧が表示される。
+-----------------------------------+
| Database |
+-----------------------------------+
| test_development |
| exp-pictweet_development |
| exp-pictweet_test |
| memo_app_development |
| memo_app_test |
+-----------------------------------+
削除したいデータベースを指定して削除
mysql> drop database test_development;
「Query OK」の表示が出れば成功。
Query OK, 3 rows affected (0.17 sec)
再度「SHOW DATABASES」で削除できているか確認。
+-----------------------------------+
| Database |
+-----------------------------------+
| exp-pictweet_development |
| exp-pictweet_test |
| memo_app_development |
| memo_app_test |
+-----------------------------------+
削除できない場合
エラーになる場合は以下の内容を確認しましょう。
1. SQL構文のエラー(データベース名に**「 - (ハイフン)」**を入れているなど)
2. 削除したいDBのフォルダの中に、自分で作成したファイルがないか
1.SQL構文のエラー
「exp-pictweet_development」を削除しようとすると以下のエラーで出ます。
mysql> drop database mooovi-exam1_development;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-exam-pictweet_development' at line 1
SQL構文エラーとなる要素(今回は「-」)が含まれている場合は、**バッククォート(`)**でデータベース名を囲む必要があります。
mysql> drop database `exp-exam-pictweet_development`;
Query OK, 8 rows affected (0.09 sec)
バッククォート(`) = [shiftキー]+[@]
※シングルクォートではないので注意
2. 削除したいDBのフォルダの中に、自分で作成したファイルがないか
DBフォルダ内に自分で作成したファイルがあると削除できません。
取り除くことで、削除できるようになります。
それでもできなければ…
原因がわからない場合、データベース情報が保存されているディレクトリを丸ごと削除する方法もあるみたいです。