常見的主要有三種方法:
創(chuàng)新互聯(lián)建站是一家專業(yè)提供芒康企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、成都網(wǎng)站建設、外貿(mào)網(wǎng)站建設、H5技術、小程序制作等業(yè)務。10年已為芒康眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
如果所有表都是MyISAM類型的話,可以直接修改文件夾的名字。
關閉mysql→把data目錄中的db_name目錄重命名為new_db_name→開啟mysql
新建數(shù)據(jù)庫,在新的數(shù)據(jù)庫里重命名所有舊數(shù)據(jù)庫中的表,再刪除舊的數(shù)據(jù)庫。具體操作命令如下:創(chuàng)建新的數(shù)據(jù)庫→重命名數(shù)據(jù)表名稱→刪除舊的數(shù)據(jù)庫。
CREATE DATABASE new_db_name;
RENAME TABLE db_name.table1 TO new_db_name.table1,db_name.table2 TO new_db_name.table2;
DROP DATABASE db_name;
利用mysqldump命令從舊的數(shù)據(jù)導出數(shù)據(jù),再導入新數(shù)據(jù)庫。具體操作命令如下:導出數(shù)據(jù)→創(chuàng)建新的數(shù)據(jù)庫→導入數(shù)據(jù)→刪除舊的數(shù)據(jù)庫。
mysqldump -u root -p -h ip db_name db_name_dump.SQL
mysql -u root -p -h ip -e “CREATE DATABASE new_db_name”
mysql -u root -p -h ip new_db_name db_name_dump.SQL
mysql -u root -p -h ip -e “DROP DATABASE db_name”
安裝后可以通過注冊表去修改,也可以關閉服務重新創(chuàng)建mysqld --install mysql8
mysql8就是新服務名稱
在Windows中默認安裝的Mysql4.1的服務名是mysql,現(xiàn)在想安裝Mysql4.0,又不想卸載原來的Mysql4.1。
于是想把原Mysql的服務名改為mysql41,這樣兩個版本的Mysql就可以共存了。
修改Mysql服務名的步驟如下:
1.刪除原Mysql的服務,在Windows命令行中執(zhí)行 sc delete mysql
2.重新安裝Mysql服務
在命令行中cd到Mysql的bin目錄下執(zhí)行:
Mysql\binmysqld-nt.exe --install --defaults-file="my.ini文件路徑"
如:Mysql\binmysqld-nt.exe --install MySQL41 --defaults-file="D:\Mysql\my.ini“
這樣新安裝的服務名為MySQL41
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數(shù)據(jù)庫改名,可能由于實現(xiàn)的功能不完備(比如,這條命令可能是一個超大的事務,或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數(shù)據(jù)庫名大致上有以下幾種方案:
一、mysqldump 導入導出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導出再往新庫導入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導出(包含的對象:表、視圖、觸發(fā)器、事件、存儲過程、存儲函數(shù))
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫 yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可?;蛘邔憘€腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導出來,完了在逐一改完表名后導進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設 MySQL 部署好了后,所有的 binlog 都有備份,并且二進制日志格式還是 statement 的話,那就可以簡單搭建一臺從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉升從機為主機即可。這里只需要從機配置一個參數(shù)來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標準化,不推薦。
總結(jié)其實針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數(shù)據(jù)量小,推薦第一種;
數(shù)據(jù)量大,則推薦第二種;
數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日志或其他的方式來把舊庫數(shù)據(jù)直接讀取到新庫達到改名的目的等等。