数据库改名方法

方法一

RENAME database olddbname TO newdbname

这个语法在 mysql-5.1.7 中被添加进来,到了mysql-5.1.23又去掉了,官方不推荐,会有丢失数据的危险!

方法二

  1. 创建需要改成新名的数据库;
  2. mysqldump 导出要改名的数据库;
  3. mysqldump 导入新数据库;
  4. 删除原来的旧库(确定是否真的需要)
    当然这种方法虽然安全,但是如果数据量大,会比较耗时。
#创建数据库
CREATE DATABASE IF NOT EXISTS `库名` default charset utf8mb4 COLLATE utf8mb4_unicode_ci;

# 将db1库备份到db1.sql文件
mysqldump -u root -p db1 > /tmp/db1.sql;

#Enter password: 
#[root@xxx ~]# 

# 导入备份文件到新库db2
mysql -u root -p db2 < /tmp/db1.sql;

#Enter password: 
#[root@xxx ~]# 


# 删除旧库(如果真的需要)
DROP DATABASE db1;

方法三

编写并执行脚本

脚本newdatabase.sh

#!/bin/bash
# 假设将db1数据库名改为db2
# MyISAM直接更改数据库目录下的文件即可
# 下面脚本是创建新数据库,获取旧数据库所有表名,将其循环移动到新数据库

mysql -uroot -p123456 -e 'create database if not exists db2'
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='db1'")

for table in $list_table
do
    mysql -uroot -p123456 -e "rename table db1.$table to db2.$table"
done

执行脚本

[root@xxx script]# mysql --version
mysql  Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)

[root@xxx script]# bash newdatabase.sh 
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
#mysql:[警告]在命令行界面使用密码可能是不安全的。 

参考文章:https://blog.csdn.net/heshihu2019/article/details/134673101

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值