MySQLのデータベースの名前を変更する
先日Railsでアプリ作成していて、ふと名称を変更したくなったのでやり方を調べてみました。 というのも、ちょいとアプリの名前を変更したくなったんです。そしたら合わせてフォルダ名とかも変えたくなって…
データベース名の変更がしたい
結論から言うとコマンド1発でポンッという感じにはできなそうです。
(個人的には rename database みたいなコマンドで変更できると嬉しかったのですが。)
なので、先に新しい(変更後)の名前のデータベースを用意して、そこに古い(変更前)のデータベースのデータを移し替えてやる必要があります。 めんどくさい。。。
実際にやった手順は以下の通り。
1.新しいデータベースの作成
まずMySQLにログインして新しいデータベースを作ります。
# MySQLにログイン $ mysql -u ユーザ名 -p Enter password: # 新しいデータベースを作成 mysql> create database 新しいデータベース名 character set utf8; # MySQLからログアウト mysql> exit
2.古いデータベースからデータをエクスポート
次にmysqldumpコマンドを使って旧データベースに保存されているデータを抜き出します。
# mysqldumpで保存されているデータをエクスポート $ mysqldump -u ユーザ名 -p 古いデータベース名 > databse_dump.sql Enter password:
3.新しいデータベースにデータをインポート
最後に新しいデータベースに2で抜き出したデータを取り込みます。
# 新しいデータベースへデータを取り込む $ mysql -u ユーザ名 -p データベース名 < 新しいデータベース名 < database_dump.sql Enter password:
以上、3ステップで完了です。
面倒くさいけど、思ったよりか楽に終わりました。
おまけ
データベース名にハイフンを含める方法
普通にやるとデータベース名にハイフンを含めることができません
mysql> create database ハイフン付きの名前 character set utf8; 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 '-a character set utf8' at line 1
で、どうやるかというと
- バッククォートでDB名を囲む
mysql> create database `ハイフン付きの名前` character set utf8; Query OK, 1 row affected (0.01 sec)
これでハイフン付きの名称をつけられました