亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何快速重命名MySQL數據庫(更改架構名稱)?

請問如何快速重命名MySQL數據庫(更改架構名稱)?

萬千封印 2019-08-02 11:02:18
如何快速重命名MySQL數據庫(更改架構名稱)?MySQL手冊MySQL包括這個。通常,我只是轉儲數據庫并用一個新的名稱重新導入它。對于大型數據庫來說,這不是一種選擇。顯然RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 做壞事,只存在于少數幾個版本中,總的來說是個壞主意。.這需要配合InnoDB,它的存儲方式與MyISAM.
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

對于InnoDB,以下內容似乎有效:創建新的空數據庫,然后將每個表依次重命名為新數據庫:

RENAME TABLE old_db.table TO new_db.table;

在此之后,您需要調整權限。

對于shell中的腳本,可以使用以下任一項:

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ 
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e 
"use old_db;rename table old_db.$table to new_db.$table;"; done;

注:

  • 選項之間沒有空間。

    -p

    還有密碼。如果數據庫沒有密碼,請刪除

    -u username -ppassword

    部分。
  • 如果某個表具有觸發器,則不能使用上述方法將其移動到另一個數據庫(將導致Trigger in wrong schema錯誤)。如果是這樣的話,使用傳統的方法克隆數據庫,然后刪除舊的數據庫:

    mysqldump old_db | mysql new_db

  • 如果您有存儲過程,則可以在以后復制它們:

    mysqldump -R old_db | mysql new_db



查看完整回答
反對 回復 2019-08-03
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊


使用以下幾個簡單的命令:

mysqldump -u username -p -v olddatabase > olddbdump.sql
mysqladmin -u username -p create newdatabase
mysql -u username -p newdatabase < olddbdump.sql

減少I/O:

mysqladmin -u username -p create newdatabase
mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase




查看完整回答
反對 回復 2019-08-03
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

我認為解決方案更簡單,是一些開發人員提出的。phpMyAdmin對此有一個操作。

從phpMyAdmin中,選擇要選擇的數據庫。在選項卡中有一個叫做操作,轉到重命名部分。就這樣。

正如許多人建議的那樣,它使用新名稱創建了一個新數據庫,將舊數據庫的所有表轉儲到新數據庫中,并刪除舊數據庫。


查看完整回答
反對 回復 2019-08-03
  • 3 回答
  • 0 關注
  • 408 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號