为什么现在MySQL无法重命名数据库?
一、为什么现在MySQL无法重命名数据库
MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比如,这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令。
mysqldump 导入导出
要说最简单的方法,就是直接用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)
改整库的表名
利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。
历史方案
其实在 MySQL 早期还有一种方法。
假设 MySQL 部署好了后,所有的 binlog 都有备份,并且二进制日志格式还是 statement 的话,那就可以简单搭建一台从机,让它慢慢追主机到新的库名,等确切要更改旧库的时候,再直接晋升从机为主机即可。
总结
其实针对 MySQL 本身改库名,大致就这么几种方法:
如果数据量小,推荐名列前茅种;数据量大,则推荐第二种;数据量巨大,那就非 MySQL 本身能解决的了。可通过部署第三方 ETL 工具,通过解析 MySQL 二进制日志或其他的方式来把旧库数据直接读取到新库达到改名的目的等等。
延伸阅读:
二、什么是数据库
数据库就是英文的“database”翻译来的,data + base,故名思义就是数据的根源,数据的基础。那么为什么要有数据库呢,数据库首先是个计算机软件,在所谓数据库诞生之前,常用方法可能是程序员自己写一个小程序来完成数据处理分析这样的工作。
伴随着计算机的普及,越来越多的场景开始使用计算机,产生了越来越多的数据,也催生了越来越多的数据分析需求。为了降低数据分析的门槛,让更多人能够更方便高效地管理分析数据,工程师们就打造了一种专门的软件来帮助人们对数据进行合理的存储以提高存取效率,提供易用的接口和丰富的分析算法以方便使用,集成有效的管理工具以提高数据安全性等等,这就是数据库,也被称为数据库管理系统(DBMS,Database management system)。
数据库是一整套数据管理体系,包括数据存储的模型、数据组织的架构、数据分析的算法、数据管理的工具以及数据访问的接口等等。
猜你喜欢LIKE
相关推荐HOT
更多>>怎么向VFP数据表中一次加入多条记录?
一、怎么向VFP数据表中一次加入多条记录以下均以SQL2000、VFP6及以上的表为例代码导入:查询分析器中执行如下语句(先选择对应的数据库)————...详情>>
2023-10-19 12:53:00MySQL的自增ID用完了应该怎么办?
一、MySQL的自增ID用完了应该怎么办解决方案1:使用BIGINT数据类型一种解决方法是使用BIGINT数据类型。BIGINT数据类型的最大值是92233720368547...详情>>
2023-10-19 12:04:41jdbc的resultset底层实现原理是怎样的?
一、jdbc的resultset底层实现原理是怎样的只了解 mysql, mysql 中的 result 默认会把所有结果拿回来。默认情况下,结果集完全检索并存储在内存...详情>>
2023-10-19 09:36:35为什么查询information_schema下的TABLES这么慢?
一、为什么查询information_schema下的TABLES这么慢一般有两个原因。1、是元数据太多,就比如你的例子总共七万多张表,information_schema在统...详情>>
2023-10-19 07:37:52热门推荐
pycharm的使用技巧都有哪些?
沸C语言中定义与声明的含义是什么?
热怎么向VFP数据表中一次加入多条记录?
热JS的机制有哪些?
新MySQL的自增ID用完了应该怎么办?
C++ 写即时通讯服务器用什么数据库比较合适?
云数据库并发数和连接数是个怎样的关系?
为什么现在MySQL无法重命名数据库?
mysql.sock文件是怎么起作用的?
jdbc的resultset底层实现原理是怎样的?
Oracle/MySQL数据库创建索引的原则是什么?
Oracle怎么修改某个字段特定位置的字符?
为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗?
为什么查询information_schema下的TABLES这么慢?