RENAME DATABASEステートメントとALTER DATABASEステートメントの違い
MySQLデータベースの名前を変更する方法
方法1:RENAME DATABASE ステートメントを使う
これは、MySQL 5.1以降で推奨されている方法です。この方法は、データベースとそのすべてのテーブル、インデックス、ビュー、ストアドプロシージャなどを一括で変更することができます。
RENAME DATABASE 旧データベース名 TO 新データベース名;
例:
RENAME DATABASE my_old_database TO my_new_database;
ALTER DATABASE 旧データベース名 RENAME TO 新データベース名;
ALTER DATABASE my_old_database RENAME TO my_new_database;
注意事項
- いずれの方法を使用する場合でも、データベースへの接続を切断してから実行する必要があります。
- 新しいデータベース名は、既存のデータベース名と異なる必要があります。
- データベース名に使用できる文字は、英数字、アンダースコア(_)、ハイフン(-)のみです。
- データベース名にスペースや特殊文字を使用することはできません。
- RENAME DATABASE ステートメントは、InnoDBテーブルスペースを使用しているデータベースに対しては使用できません。
方法1:RENAME DATABASE ステートメントを使う
-- データベースへの接続を切断する
USE mysql;
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost';
FLUSH PRIVILEGES;
-- データベースの名前を変更する
RENAME DATABASE my_old_database TO my_new_database;
-- データベースへの接続を再確立する
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
方法2:ALTER DATABASE ステートメントを使う
-- データベースへの接続を切断する
USE mysql;
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost';
FLUSH PRIVILEGES;
-- データベースの名前を変更する
ALTER DATABASE my_old_database RENAME TO my_new_database;
-- データベースへの接続を再確立する
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
- MySQL Workbench を使う
MySQL Workbench は、MySQLデータベースを管理するためのGUIツールです。MySQL Workbench を使ってデータベースの名前を変更するには、以下の手順を実行します。
- MySQL Workbench を起動し、データベースサーバーに接続します。
- ナビゲーションパネルで、変更したいデータベースを選択します。
- 右クリックして、「名前の変更」を選択します。
- 新しいデータベース名を入力して、「OK」をクリックします。
- mysqldump と mysql を使う
mysqldump コマンドを使ってデータベースをダンプし、mysql コマンドを使って新しいデータベースに復元することができます。この方法は、データベースが非常に大きい場合や、複雑な権限設定がある場合に役立ちます。
手順
- mysqldump コマンドを使って、データベースをダンプします。
mysqldump -u root -p my_old_database > my_old_database.sql
mysql -u root -p
CREATE DATABASE my_new_database;
mysql -u root -p my_new_database < my_old_database.sql
- mysqldump コマンドを使ってデータベースをダンプする前に、必ずバックアップを取ってください。
- mysql コマンドを使って新しいデータベースに復元する前に、新しいデータベースが空であることを確認してください。
mysql database innodb