
#!/bin/bash
#mysql数据库改名,官方没有直接修改数据库名称的命令
#只有通过修改表名方式实现
source /etc/profile #加载系统环境变量
source ~/.bash_profile #加载用户环境变量
set -o nounset #引用未初始化变量时退出
#需要修改的数据库名
olddb="wuhan"
#修改后的数据库名
newdb="shanghai"
#mysql服务器ip或者主机名
ipaddr="172.16.0.8"
#用户名
user="root"
#密码
passwd="123456"
mysqlconn="mysql -h${ipaddr} -u${user} -p${passwd}"
#创建新数据库
$mysqlconn -e "drop database if exists ${newdb};create database ${newdb};"
#获取所有表名
tables=$($mysqlconn -N -e "select table_name from information_schema.tables where table_schema='${olddb}'")
#修改表名
for name in $tables;do
$mysqlconn -e "rename table ${olddb}.${name} to ${newdb}.${name}"
done
#删除老的空库
$mysqlconn -e "drop database ${olddb}"
echo "==================================="
echo "${olddb}已成功改为${newdb}"
echo "请手动给业务账号授权"
echo "==================================="