1.通用方法:

指的分别在MYSIAM引擎和INNODB的下

备份还原,安全稳定,数据量大的时候会花很多时间

先将数据库备份,然后再还原到新数据库

2.MYSIAM下

直接在数据库文件目录下修改对应数据库目录的名字

此方法未测试过

3.INNODB下

3.1 rename database

RENAME database olddbname TO newdbname

此方法不安全,官方也不推荐,本人也未验证。

3.2 rename table … to …

通过此方法写了个脚本

#!/bin/bash
PWD=123456
mysql -uroot -p${PWD} -e "show databases;"

ALL_DB=$(mysql -uroot -p${PWD} -e "show databases;")

read -p "请输入需要修改的数据库名称:" OLD_N
for i in ${ALL_DB}
do
        if [ $i = "$OLD_N" ];then
                echo "输入的数据库名正确,将对输入的数据库进行改名操作"

                read -p "请输入新数据库名:" NEW_N
                mysql -uroot -p${PWD} -e "create database if not exists $NEW_N;" &> /dev/null
                TABLE_LIST=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.tables where table_schema='$OLD_N'")
                echo "${OLD_N}中包含了如下表:${TABLE_LIST}"
                for j in $TABLE_LIST
                do
                        mysql -uroot -p123456 -e "rename table ${OLD_N}.${j} to ${NEW_N}.${j}"
                done
        elif
        		echo "您输入的数据库名不存在"
        fi
done

更多推荐

mysql修改数据库名的方法