MySQL - 修改数据库名称

1.应用场景

主要用于修改数据库名字,同时保证数据不丢失.

2.学习/操作

mysql 的图像结果

 

1. 文档

mysql安全修改mysql数据库名几种方法_haiross的专栏-CSDN博客_mysql 修改数据库名

MySQL数据库修改库名的三种方法_Oracle_zsq的博客-CSDN博客_修改库名

2. 整理输出

Note

如果是MyISAM存储引擎那么可以直接去到数据库目录mv就可以。

只要修改DATA目录下面的那个库名的文件夹的名字即可.
 

如果是Innodb完全不行,会提示相关表不存在。

2.1 第一种方法:

5.1.7到5.1.23版本可用, 官方不推荐,会有丢失数据的危险 [如果没有数据或者数据不重要, 未尝不可]
RENAME database olddbname TO newdbname  --- MySQL 8.0.12 不支持

2.2 第二种方法:-- 很笨的办法, 但是安全, 不过当数据量比较大时不是很推荐.

1. 创建需要改成新名的数据库.
2. mysqldum 导出要改名的数据库.
3. 删除原来的旧库(确定是否真的需要)


当然这种方法虽然安全,但是如果数据量大,会比较耗时,同时还需要考虑到磁盘空间等硬件成本。

2.3 第三种方法:-- 本质上应是跟第三种方式差不多

直接跑一个shell脚本,内容如下:

#!/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

2.4 第四种方法:

转化思想, 先alter table 的存储引擎到MyISAM, 然后改了库目录的名字, 然后再改回来INNODB. // TBD

问题:

如果直接修改table的存储引擎,会有什么影响,

暂停使用数据库的情况下,与保持使用数据库的情况下

TBD

后续补充

...

3.问题/补充

1.以上方法, 实践验证, 只是新建空数据库, 修改数据库名.

因为没有数据表, 就没有所谓的存储引擎, 也就没有所谓的差别, 只能重新建一个新的数据库来解决?

4.参考

mysql安全修改mysql数据库名几种方法_haiross的专栏-CSDN博客_mysql 修改数据库名

MySQL数据库修改库名的三种方法_Oracle_zsq的博客-CSDN博客_修改库名

后续补充

...

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:代码科技 设计师:Amelia_0503 返回首页
评论

打赏作者

穿素白衫的中少年

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值