一、為什么現在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)。
數據庫是一整套數據管理體系,包括數據存儲的模型、數據組織的架構、數據分析的算法、數據管理的工具以及數據訪問的接口等等。