تغییر نام database بر روی mariadb

شاید برای شما هم پیش بیاد که بخواین که نام دیتابیس را تغییر بدید. خوب اگه از phpmyadmin استفاده می‌کنید که اون خودش براتون این کار را می کنه. ولی اگه خودتون می خواید از طریق خط فرمان این کار را انجام بدید، باید بدونید که دستوری برای این کار نداریم!

پس برای انجام این کار باید چی کار کرد. یک راه حل اولیه اینه که یک دیتابیس جدید با اسم مورد نظر بسازید، از دیتا بیس قبلی backup بگیرید و بعد در دیتابیس جدید restore کنید.

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

اگه بخوایم یه کم بار I/O را کم کنیم می تونیم از ترفند زیر استفاده کنیم (من از stackoverflow پیدا کردم)

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

اگه از Innodb برای دیتابیس استفاده می‌کنید، یه روش کم بار تر هم می تونید استفاده کنید. دیتابیس جدید با اسم جدید بسازید و بعد table هاتون را rename کنید.

RENAME TABLE old_db.table TO new_db.table;

برای اینکه همه table ها را یکجا rename کنید از حلقه while یا for می تونید استفاده کنید

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

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *