mysql5.7資料庫改名

甲骨文技術支援發表於2017-11-14

資料庫版本是5.7.17

今天接到需求說需要把資料庫的名字從A改為B,查了下A資料庫下有不到200張表,也不是很大,要是用匯入匯出也可以,就是還是會慢,時間寶貴啊,用的時間越少越好。

有個rename table命令,寫個指令碼主要用它來實現需求


  1. #!/bin/bash
  2. #先判斷新資料庫是否存在,要是不存在就建立。
  3. #列出老資料庫下都有那些表,其中N和s引數起到的作用是格式化,有點類似於Oracle下sqlplus裡的pagesize
  4. #用for迴圈來rename。

  5. mysql -uroot -pxxxxDB2017# -e 'create database if not exists cus_0042'
  6. list_table=$(mysql -uroot -pxxxxDB2017# -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='old_databases'")

  7. for table in $list_table
  8. do
  9.     mysql -uroot -pxxxxDB2017# -e "rename table old_databases.$table to cus_0042.$table"
  10. done

執行成功後,old_databases下就空了,可是刪除了。

假如是myisam的儲存引擎,直接在資料目錄下mv就行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20893244/viewspace-2147259/,如需轉載,請註明出處,否則將追究法律責任。

相關文章