重新命名 MySQL 資料庫

沒有一個命令可以重新命名 MySQL 資料庫,但可以使用簡單的解決方法通過備份和恢復來實現:

mysqladmin -uroot -p<password> create <new name>
mysqldump -uroot -p<password> --routines <old name> | mysql -uroot -pmypassword <new name>
mysqladmin -uroot -p<password> drop <old name>

腳步:

  1. 將上面的行復制到文字編輯器中。
  2. 將所有對 <old name><new name><password>(+可選 root 以使用不同使用者)的引用替換為相關值。
  3. 在命令列上逐個執行(假設 MySQLbin 資料夾在路徑中並在提示時輸入 y)。

替代步驟:

將每個表從一個 db 重新命名(移動)到另一個 db。為每個表執行此操作:

RENAME TABLE `<old db>`.`<name>` TO  `<new db>`.`<name>`;

你可以通過執行類似的操作來建立這些語句

SELECT CONCAT('RENAME TABLE old_db.', table_name, ' TO ',
                           'new_db.', table_name)
    FROM information_schema.TABLES
    WHERE table_schema = 'old_db';

警告。不要通過簡單地在檔案系統上移動檔案來嘗試執行任何型別的表或資料庫。這在 MyISAM 的舊時代運作良好,但在 InnoDB 和表空間的新時代,它將無法正常工作。特別是當資料字典從檔案系統移動到系統 InnoDB 表時,可能在下一個主要版本中。移動(而不僅僅是 DROPping)InnoDB 表的 PARTITION 需要使用可傳輸的表空間。在不久的將來,甚至都沒有可用的檔案。