如何快速重新命名MySQL資料庫,如何快速重新命名乙個 MySQL 資料庫

2022-07-01 23:47:12 字數 5541 閱讀 3116

1樓:

如果你指的是rename database db1 to db2命令的話,這個命令在mysql 5.1.23被去掉了。按部就班的話,這麼做:

1、myisam引擎把庫名字對應的資料夾名改了

1.1、關閉mysqld

1.2、把data目錄中的db_name目錄重新命名為new_db_name

1.3、開啟mysqld

2、innodb引擎分為下面幾個步驟:

2.1 按新名字建立乙個資料庫

2.2 刪除原有庫中所有表上的觸發器

2.3 使用rename table命令將表從原資料庫複製到新資料庫

2.4 在新資料庫上重新建立2.2中被刪除的觸發器

2.5 在新資料庫上重新建立儲存過程、自定義函式、events等

rename table命令語法:

rename table db_name.table1 to new_db_name.table1,

db_name.table2 to new_db_name.table2;

2樓:愛可生雲資料庫

被取消的命令mysql 之前提供了乙個 rename database db_old to db_new 的命令來直接對資料庫改名,可能由於實現的功能不完備(比如,這條命令可能是乙個超大的事務,或者是由於之前的表很多還是 myisam 等),後來的版本直接取消了這條命令。更改資料庫名大致上有以下幾種方案:

一、mysqldump 匯入匯出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫匯出再往新庫匯入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 匯出(包含的物件:表、檢視、觸發器、事件、儲存過程、儲存函式)

二、改整庫的表名利用 mysql 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那麼順滑,不能一步到位。比如,要把資料庫 yttdb_old 改名為 yttdb_new,如果資料庫 yttdb_old 裡只有磁碟表,那很簡單,直接改名即可。

或者寫個指令碼來批量改,非常簡單。但是一般舊庫里不只有磁碟表,還包含其他各種物件。這時候可以先考慮把舊庫的各種物件匯出來,完了在逐一改完表名後導進去。

三、歷史方案其實在 mysql 早期還有一種方法。假設 mysql 部署好了後,所有的 binlog 都有備份,並且二進位制日誌格式還是 statement 的話,那就可以簡單搭建一台從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉公升從機為主機即可。這裡只需要從機配置乙個引數來把舊庫指向為新庫:

replicate-rewrite-db=yttdb_old->yttdb_new不過這種侷限性很大,不具備標準化,不推薦。

總結其實針對 mysql 本身改庫名,大致就這麼幾種方法:

如果資料量小,推薦第一種;

資料量大,則推薦第二種;

資料量巨大,那就非 mysql 本身能解決的了。

可通過部署第三方 etl 工具,通過解析 mysql 二進位制日誌或其他的方式來把舊庫資料直接讀取到新庫達到改名的目的等等。

怎樣在mysql裡面修改資料庫名稱?

3樓:愛可生雲資料庫

被取消的命令mysql 之前提供了乙個 rename database db_old to db_new 的命令來直接對資料庫改名,可能由於實現的功能不完備(比如,這條命令可能是乙個超大的事務,或者是由於之前的表很多還是 myisam 等),後來的版本直接取消了這條命令。更改資料庫名大致上有以下幾種方案:

一、mysqldump 匯入匯出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫匯出再往新庫匯入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 匯出(包含的物件:表、檢視、觸發器、事件、儲存過程、儲存函式)

二、改整庫的表名利用 mysql 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那麼順滑,不能一步到位。比如,要把資料庫 yttdb_old 改名為 yttdb_new,如果資料庫 yttdb_old 裡只有磁碟表,那很簡單,直接改名即可。

或者寫個指令碼來批量改,非常簡單。但是一般舊庫里不只有磁碟表,還包含其他各種物件。這時候可以先考慮把舊庫的各種物件匯出來,完了在逐一改完表名後導進去。

三、歷史方案其實在 mysql 早期還有一種方法。假設 mysql 部署好了後,所有的 binlog 都有備份,並且二進位制日誌格式還是 statement 的話,那就可以簡單搭建一台從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉公升從機為主機即可。這裡只需要從機配置乙個引數來把舊庫指向為新庫:

replicate-rewrite-db=yttdb_old->yttdb_new不過這種侷限性很大,不具備標準化,不推薦。

總結其實針對 mysql 本身改庫名,大致就這麼幾種方法:

如果資料量小,推薦第一種;

資料量大,則推薦第二種;

資料量巨大,那就非 mysql 本身能解決的了。

可通過部署第三方 etl 工具,通過解析 mysql 二進位制日誌或其他的方式來把舊庫資料直接讀取到新庫達到改名的目的等等。

4樓:匿名使用者

mysql中沒有直接修改資料庫的命令,如果想做可以變相實現,就是用mysqldump -h ip -u username -ppasswd databases>d:/back.sql用這個命令備份資料庫,然後建立新的資料庫create databases new_databases;再上傳備份資料庫mysql -u username -ppasswd new_databases

/back.sqlok,刪除舊的資料庫就好了

5樓:高_婷婷

常見的主要有三種方法:

如果所有表都是myisam型別的話,可以直接修改資料夾的名字。

關閉mysql→把data目錄中的db_name目錄重新命名為new_db_name→開啟mysql

新建資料庫,在新的資料庫裡重新命名所有舊資料庫中的表,再刪除舊的資料庫。具體操作命令如下:建立新的資料庫→重新命名資料表名稱→刪除舊的資料庫。

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命令從舊的資料匯出資料,再匯入新資料庫。具體操作命令如下:匯出資料→建立新的資料庫→匯入資料→刪除舊的資料庫。

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」

6樓:匿名使用者

推薦個工具,sqlyog enterprise,一看就明白,你要想用命令改的話,就看mysql的幫助文件.

7樓:創作者

提供三種方法:

1. rename database db_name to new_db_name

這個。。這個語法在mysql 5.1.7中被新增進來,到了5.1.23又去掉了。

據說有可能丟失資料。還是不要用的好。

2.如果所有表都是myisam型別的話,可以改資料夾的名字

關閉mysqld

把data目錄中的db_name目錄重新命名為new_db_name

開啟mysqld

3.重新命名所有的表

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;

8樓:匿名使用者

好像改不了吧,你不如再建立新的

sql資料庫如何重新命名

9樓:

1、首先需要從開始選單中找到【sql server 配置管理器】。

2、然後會看到【sql server(mssqlserver)】正處於執行的狀態。

3、右擊它然後【重新啟動】任務程序。

4、然後開啟sql2012選擇乙個資料庫右擊【重新命名】。

5、然後輸入【新的資料庫名稱】就重新命名完畢了。

10樓:艾阿三

一、未使用的資料庫 改名方法如下:

1、未使用的資料庫改名比較方便,找到你要更改的資料庫,右鍵選擇【重新命名】。

2、然後將你想要更改的名字寫好,然後點選一下旁邊的空白欄。

3、然後你就發現資料庫的名稱已經改好了。

二、使用中的資料庫改名方法如下:

1、使用中的資料庫你在使用這種方法顯然是不合適,你用這種方法更改資料庫的名字之後會提示你無法重新命名資料庫。

2、這時還是同樣的右鍵你要改名的資料庫,選擇【屬性】按鈕。

3、然後在資料庫屬性左側選單欄中選擇【選項】按鈕。

4、然後在【狀態】欄目下有一項限制訪問選項,預設的是multi_user,意為多使用者模式,然後你將其更改為【single_user】單使用者模式,點選確定即可。

5、然後你在使用上面的方法更改資料庫的名稱會發現資料庫改名成功了。

11樓:

exec sp_dboption 'olddbname', 'single user', 'true'

exec sp_dboption 'newdbname', 'single user', 'false'

這兩條語句的意思是將資料庫轉換為單使用者模式和非單使用者模式,這樣可以避免在重新命名資料庫的時候有其它使用者對資料庫進行操作,造成死鎖。

所以樓主問問的要不要改的回答應該是否定的,不能改,這是設定資料庫選項的關鍵字。

其實在修改資料庫名稱之前,如果有使用者連線到資料庫的話會造成資料庫重新命名失敗,可以先執行

select spid

from master.dbo.sysprocesses

where dbid=db_id('olddbname')

結果集中顯示的是當前連線到資料庫olddbname的連線

比如結果是

7981

當然,實際值應該不是這兩個

然後執行

kill 79

kill 81

關閉已建立的連線,之後再執行

exec sp_dboption 'olddbname', 'single user', 'true'

exec sp_renamedb 'olddbname', 'newdbname'

exec sp_dboption 'newdbname', 'single user', 'false'

上述語句最好都在master資料庫中執行。

如何連線遠端Mysql資料庫

安裝資料庫連線軟體 需要知道host,使用者和密碼。使用mysql font軟體連線資料庫。在連線資訊總輸入資訊,點選確定,連線成功 如是在內網,輸入伺服器ip 使用者名稱,密碼即可 如果是外網連線,有固定ip位址的,有防火牆的要做策略,做對映等.首先mysql得開啟外網訪問許可權 其次在程式中連線...

mysql資料庫查詢的問題,mysql 資料庫查詢的乙個問題

select from select t.num if category id t.category id,num 1,1 as cal rank,category id t.category id from select from goods order by category id asc go...

mysql資料庫如何執行sql語句

select a drclass1,b drclass2,c drclass3,d drclass4,e drclass5 from teacher where teacherid teacherid create table classname classname char 50 insert i...