被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數(shù)據(jù)庫改名,可能由于實現(xiàn)的功能不完備(比如,這條命令可能是一個超大的事務(wù),或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數(shù)據(jù)庫名大致上有以下幾種方案:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了乳山免費建站歡迎大家使用!
一、mysqldump 導(dǎo)入導(dǎo)出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導(dǎo)出再往新庫導(dǎo)入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導(dǎo)出(包含的對象:表、視圖、觸發(fā)器、事件、存儲過程、存儲函數(shù))
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫 yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可。或者寫個腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導(dǎo)出來,完了在逐一改完表名后導(dǎo)進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設(shè) MySQL 部署好了后,所有的 binlog 都有備份,并且二進制日志格式還是 statement 的話,那就可以簡單搭建一臺從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉升從機為主機即可。這里只需要從機配置一個參數(shù)來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標(biāo)準(zhǔn)化,不推薦。
總結(jié)其實針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數(shù)據(jù)量小,推薦第一種;
數(shù)據(jù)量大,則推薦第二種;
數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日志或其他的方式來把舊庫數(shù)據(jù)直接讀取到新庫達到改名的目的等等。
安裝后可以通過注冊表去修改,也可以關(guān)閉服務(wù)重新創(chuàng)建mysqld --install mysql8
mysql8就是新服務(wù)名稱
修改MySQL數(shù)據(jù)庫名稱的方法如下:
1.語句修改法:
RENAME DATABASE db_name TO new_db_name
這個語法在mysql 5.1.7中被添加進來,到了5.1.23又去掉了。
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
把data目錄中的db_name目錄重命名為new_db_name
3.重命名所有的表
代碼如下:
4. mysqldump導(dǎo)出數(shù)據(jù)再導(dǎo)入
代碼如下:
5.使用shell腳本重命名所有的表
代碼如下:
第一種方法: 安裝MySQL的時候在這一步時它默認(rèn)的服務(wù)名是“MySQL” 只需要把這個名字改了就可以了??梢园涯J(rèn)的服務(wù)器的名稱改為“MySQL4”等其他名稱。PS:這種方法我試過,大二的時候成功了,但是前幾天幫同學(xué)安裝時候還是不行,依然不知道是什么問題導(dǎo)致的。第二種方法 1、卸載MySQL ,停止MySQL服務(wù) 2、刪除安裝目錄及數(shù)據(jù)存放目錄 3、在注冊表(regedit)查詢mysql,全部刪除找到如下的注冊表信息,刪除MySQL目錄檢查C:\WINDOWS目錄下是否有my.ini文件,將其刪除4、在c盤查詢MySQL,全部刪除 5、重新安裝就好了