MySQL中数据库重命名

艺帆风顺 发布于 2025-04-03 14 次阅读


1.若库中所有表为MyISAM引擎,则可改库对应的文件夹的名字

(现如今这种可能性几乎没有,而且该方法需要停机,不太实际)

关闭MySQL Server:sudo /etc/init.d/mysql stop改目录名:cd /data/mysql; mv old_db new_db;开启MySQL Serversudo /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.sqlmysql -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