1.若库中所有表为MyISAM引擎,则可改库对应的文件夹的名字
(现如今这种可能性几乎没有,而且该方法需要停机,不太实际)
关闭MySQL Server:
sudo /etc/init.d/mysql stop
改目录名:
cd /data/mysql; mv old_db new_db;
开启MySQL Server
sudo /etc/init.d/mysql start
2.重命名旧库下边的所有表
create databases new_db;
rename table old_db.table1 to new_db.table1,old_db.table2 to new_db.table2,...;
drop database old_db;
3.建新库,使用mysqldump工具导出老库数据并导入新库
mysqldump -uuser -ppass -hhost -Pport--single-transaction old_db >old_db.sql
mysql -uuser -ppass -hhost -Pport -e "create database new_db"
mysql -uuser -ppass -hhost -Pport new_db
mysql -uuser -ppass -hhost -Pport -e "drop database old_db"
其中方法2中表比较多的情况下,一个个写这些名称未免太痛苦了,可用shell脚本或者存储过程来完成
#!/bin/bash
mysqlconn=" mysql -uuser -ppass -hhost -Pport ”
old_db=”old_db ”
new_db=”new_db ”
$mysqlconn -e “CREATE DATABASE $new_db”
params=$($mysqlconn -N -e “SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=’$old_db’”)
for name in $params; do
$mysqlconn -e “RENAME TABLE $old_db.$name to $new_db.$name”;
done;
$mysqlconn -e “DROP DATABASE $old_db”
————————————————
版权声明:本文为CSDN博主「zyz511919766」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zyz511919766/article/details/49335897