Rumah > Soal Jawab > teks badan
P粉6620895212023-08-24 11:11:03
Gunakan beberapa arahan mudah ini:
mysqldump -u username -p -v olddatabase > olddbdump.sql mysqladmin -u username -p create newdatabase mysql -u username -p newdatabase < olddbdump.sql
Atau untuk mengurangkan I/O, gunakan yang berikut seperti yang dicadangkan oleh @Pablo Marin-Garcia:
mysqladmin -u username -p create newdatabase mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase
P粉9491909722023-08-24 10:59:25
Untuk InnoDB, perkara berikut nampaknya berfungsi: Cipta pangkalan data kosong baharu, kemudian namakan semula setiap jadual kepada pangkalan data baharu:
RENAME TABLE old_db.table TO new_db.table;
Anda perlu melaraskan kebenaran selepas itu.
Untuk menulis skrip dalam shell, anda boleh menggunakan mana-mana kaedah berikut:
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
atau
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;
Nota:
-p
和密码之间没有空格。如果您的数据库没有密码,请删除 -u username -ppassword
bahagian. Jika jadual mempunyai pencetus, ia tidak boleh dialihkan ke pangkalan data lain menggunakan kaedah di atas (akan mengakibatkan 触发器错误架构
ralat). Jika ini berlaku, klon pangkalan data menggunakan kaedah tradisional dan kemudian padam pangkalan data lama:
<代码>mysqldump old_db |
Jika anda telah menyimpan prosedur, anda boleh menyalinnya:mysqldump -R old_db |