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

白板的微信
TA貢獻1883條經驗 獲得超3個贊
RENAME TABLE old_db.table TO new_db.table;
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

慕勒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
mysqladmin -u username -p create newdatabase mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
添加回答
舉報
0/150
提交
取消