翻譯|使用教程|編輯:吉煒煒|2024-12-05 11:52:59.573|閱讀 109 次
概述:使用 MySQL 數(shù)據(jù)庫時,您可能會遇到需要更改數(shù)據(jù)庫名稱的情況。但是,MySQL 不再支持直接重命名選項。早期版本中提供的 RENAME DATABASE 命令由于存在數(shù)據(jù)丟失的風(fēng)險而被刪除。盡管如此,仍然可以在 MySQL 中重命名數(shù)據(jù)庫。本文探討了安全有效地完成此任務(wù)的可用方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
使用 MySQL 數(shù)據(jù)庫時,您可能會遇到需要更改數(shù)據(jù)庫名稱的情況。但是,MySQL 不再支持直接重命名選項。早期版本中提供的 RENAME DATABASE 命令由于存在數(shù)據(jù)丟失的風(fēng)險而被刪除。盡管如此,仍然可以在 MySQL 中重命名數(shù)據(jù)庫。本文探討了安全有效地完成此任務(wù)的可用方法。
如何使用 mysqldump shell 命令重命名 MySQL 中的數(shù)據(jù)庫
在 MySQL 中重命名數(shù)據(jù)庫涉及創(chuàng)建一個具有所需名稱的新空數(shù)據(jù)庫,并從舊數(shù)據(jù)庫傳輸內(nèi)容。傳輸完成后,可以根據(jù)需要存檔或刪除舊數(shù)據(jù)庫。
此過程可以使用mysqldump實用程序完成,該實用程序使您能夠創(chuàng)建舊數(shù)據(jù)庫的轉(zhuǎn)儲并將其內(nèi)容導(dǎo)入新數(shù)據(jù)庫。
首先,我們需要轉(zhuǎn)儲舊數(shù)據(jù)庫。在 shell 提示符下運行以下命令,創(chuàng)建包含所有數(shù)據(jù)庫數(shù)據(jù)以及存儲過程和函數(shù)的物理備份:
$ mysqldump -u username -p"password" -R oldDbname > oldDbname.sql
下一步是創(chuàng)建一個具有所需名稱的新數(shù)據(jù)庫:
$ mysqladmin -u username -p"password" create newDbname
最后,我們將轉(zhuǎn)儲文件導(dǎo)入到新的數(shù)據(jù)庫中:
$ mysql -u username -p"password" newDbname < oldDbname.sql
這種方法的缺點是可能需要相當(dāng)長的時間,特別是在處理大型數(shù)據(jù)庫時。
另一種解決方法是使用可視化工具,例如 MySQL 的 dbForge Studio。
如何使用 dbForge Studio for MySQL 重命名 MySQL 中的數(shù)據(jù)庫
圖形用戶界面(GUI 工具)因其直觀的設(shè)計,以及通過切換到可視模式來加快任務(wù)執(zhí)行的速度的能力而成為命令行備受青睞的替代品。
本文將重點介紹dbForge Studio for MySQL,這是一個 IDE,用于管理 MySQL 和 MariaDB 數(shù)據(jù)庫開發(fā)、管理和管理各個方面的數(shù)據(jù)庫相關(guān)任務(wù)。這包括 SQL 編碼、數(shù)據(jù)庫比較和同步、數(shù)據(jù)遷移、用戶管理、源代碼控制等,所有這些都在一個用戶友好的可視化界面中完成。
獲取dbForge Studio for MySQL最新版試用
要在 dbForge Studio for MySQL 中重命名數(shù)據(jù)庫,您可以從三個選項中選擇:
現(xiàn)在,讓我們深入研究每種方法。
使用不同的名稱備份和恢復(fù)數(shù)據(jù)庫
此方法涉及創(chuàng)建數(shù)據(jù)庫備份并將其恢復(fù)到具有所需名稱的新數(shù)據(jù)庫中。使用 dbForge Studio for MySQL,此過程簡單且直觀。
例如,如果要將sakila測試數(shù)據(jù)庫重命名為sakila_new,請按照以下步驟操作:
單擊數(shù)據(jù)庫>任務(wù)>備份數(shù)據(jù)庫,或從左側(cè)的數(shù)據(jù)庫資源管理器窗格中選擇所需的數(shù)據(jù)庫,然后從上下文菜單中選擇任務(wù)>備份數(shù)據(jù)庫。
數(shù)據(jù)庫備份向?qū)印V付ㄟB接、要創(chuàng)建備份的數(shù)據(jù)庫、存儲輸出備份文件的文件夾路徑以及備份文件名。
在備份內(nèi)容部分,將結(jié)構(gòu)和所有對象都包含在備份文件中。
如果需要,請指定附加選項和錯誤處理行為。單擊“備份”。創(chuàng)建備份文件后,單擊“完成”。
下一步是創(chuàng)建一個具有所需名稱sakila_new的新數(shù)據(jù)庫。您可以使用標(biāo)準(zhǔn) CREATE DATABASE 命令或通過可視化界面執(zhí)行此操作,如下所示:
轉(zhuǎn)到數(shù)據(jù)庫>新建數(shù)據(jù)庫。在可視化編輯器中,輸入數(shù)據(jù)庫名稱sakila_new。單擊應(yīng)用更改以創(chuàng)建數(shù)據(jù)庫。
sakila_new數(shù)據(jù)庫現(xiàn)在出現(xiàn)在數(shù)據(jù)庫資源管理器列表中。這是一個空數(shù)據(jù)庫,我們想將架構(gòu)和數(shù)據(jù)從sakila遷移到sakila_new。我們可以借助我們之前為sakila創(chuàng)建的備份文件來實現(xiàn)這一點。
在數(shù)據(jù)庫資源管理器窗格中右鍵單擊sakila_new數(shù)據(jù)庫,然后選擇任務(wù)>恢復(fù)數(shù)據(jù)庫。
在數(shù)據(jù)庫還原向?qū)е校瑱z查詳細(xì)信息,瀏覽到創(chuàng)建的備份文件并選擇它。單擊“還原”。
我們已成功在sakila_new數(shù)據(jù)庫中恢復(fù)sakila備份,并且我們擁有兩個不同名稱的相同數(shù)據(jù)庫。
可以刪除舊名稱下的數(shù)據(jù)庫,因為所有數(shù)據(jù)都保存在新名稱下的數(shù)據(jù)庫中。
比較并同步數(shù)據(jù)庫架構(gòu)和數(shù)據(jù)
dbForge Studio for MySQL 提供了強大的工具來比較和同步數(shù)據(jù)庫模式和表數(shù)據(jù)。雖然此功能通常用于識別和分析開發(fā)、暫存和生產(chǎn)環(huán)境中數(shù)據(jù)庫之間的差異,但它也可以將數(shù)據(jù)庫模式和數(shù)據(jù)復(fù)制到新的空數(shù)據(jù)庫中。
首先,創(chuàng)建一個具有所需名稱的空數(shù)據(jù)庫,例如sakila_test。一旦它出現(xiàn)在數(shù)據(jù)庫列表中,導(dǎo)航到“比較” > “新模式比較”以啟動該過程。
在“新建模式比較”窗口中,定義要比較的數(shù)據(jù)庫。將舊數(shù)據(jù)庫設(shè)置為“源”,將新創(chuàng)建的具有所需名稱的數(shù)據(jù)庫設(shè)置為“目標(biāo)”。單擊“比較”。
由于我們的新數(shù)據(jù)庫是空的,因此您可以看到僅存在于源數(shù)據(jù)庫中的所有模式對象。單擊綠色箭頭啟動模式同步過程,該過程會將sakila模式復(fù)制到sakila_test數(shù)據(jù)庫中。
為了確認(rèn)結(jié)果,請刷新架構(gòu)比較結(jié)果。這兩個數(shù)據(jù)庫的架構(gòu)完全相同。
同步架構(gòu)后,我們還需要同步數(shù)據(jù)。與前面的步驟類似,單擊“比較” > “新數(shù)據(jù)比較”,并設(shè)置要比較的源和目標(biāo)。
單擊“比較”開始數(shù)據(jù)比較過程。查看結(jié)果并單擊綠色箭頭。
當(dāng)任務(wù)完成后,我們將擁有兩個相同但名稱不同的數(shù)據(jù)庫。
因此,我們可以刪除舊數(shù)據(jù)庫。
使用 dbForge Studio for MySQL 復(fù)制數(shù)據(jù)庫
最簡單的方法是通過 dbForge Studio for MySQL 中的“復(fù)制數(shù)據(jù)庫”選項,一鍵創(chuàng)建具有相同模式和數(shù)據(jù)且具有新名稱的新數(shù)據(jù)庫。
單擊數(shù)據(jù)庫>任務(wù)>復(fù)制數(shù)據(jù)庫
指定源服務(wù)器和目標(biāo)服務(wù)器,并從源列中選擇要復(fù)制的數(shù)據(jù)庫。
默認(rèn)情況下,源列中的名稱會復(fù)制到目標(biāo)列,但這些名稱是可編輯的。在目標(biāo)中為數(shù)據(jù)庫指定一個新名稱,重命名副本。
選中“包含數(shù)據(jù)”以復(fù)制 MySQL 數(shù)據(jù)庫及其數(shù)據(jù),然后單擊綠色箭頭開始復(fù)制。
當(dāng)該過程完成后,您可以在數(shù)據(jù)庫列表中看到新名稱下的數(shù)據(jù)庫副本。
如您所見,使用 dbForge Studio for MySQL 重命名數(shù)據(jù)庫的過程沒有任何困難,因為它是通過 GUI 工具的直觀界面完成的。您可以根據(jù)您的目標(biāo)和項目要求從三個選項中進(jìn)行選擇。
除此之外,我們必須要提到,MySQL Studio 提供了廣泛的重構(gòu)功能,可以幫助您重命名列、表和視圖,同時保持?jǐn)?shù)據(jù)庫完整性。
如何在 MySQL Workbench 中重命名數(shù)據(jù)庫
MySQL Workbench 是專為 MySQL 專家設(shè)計的默認(rèn) IDE。它是免費的,并且提供了不錯的功能來執(zhí)行 MySQL 中的各種標(biāo)準(zhǔn)數(shù)據(jù)庫任務(wù),盡管其功能遠(yuǎn)不如dbForge Studio for MySQL 強大。
MySQL Workbench 不支持數(shù)據(jù)庫重命名。通常建議單獨使用mysqldump實用程序。
可用選項建議重命名表以更改特定表的數(shù)據(jù)庫名稱。此操作將把包含所有數(shù)據(jù)的表從舊數(shù)據(jù)庫轉(zhuǎn)移到具有所需名稱的新數(shù)據(jù)庫中。默認(rèn)的 MySQL 存儲引擎 InnoDB 允許這樣做。
讓我們在 MySQL Workbench 中以新名稱創(chuàng)建一個新的空數(shù)據(jù)庫。單擊導(dǎo)航器中Schemas部分的+圖標(biāo)或使用命令。CREATE DATABASE
為空數(shù)據(jù)庫命名并點擊應(yīng)用。數(shù)據(jù)庫將出現(xiàn)在Schemas下的列表中。
應(yīng)用以下命令來更改特定表的數(shù)據(jù)庫名稱:
RENAME TABLE oldDbname.table TO newDbname.table;
例如,我們想將演員表從sakila數(shù)據(jù)庫轉(zhuǎn)移到sakila_new數(shù)據(jù)庫。執(zhí)行以下命令:
RENAME TABLE sakila.actor TO sakila_new.actor;
刷新數(shù)據(jù)庫,您可以看到包含所有數(shù)據(jù)的表已轉(zhuǎn)移到sakila_new。
您可以對所有其他表執(zhí)行此操作,將它們移動到新數(shù)據(jù)庫中。但是,該查詢允許一次移動一個表,這對于大型數(shù)據(jù)庫來說并不實用。此外,RENAME TABLE 命令不適用于視圖和觸發(fā)器。
結(jié)論
在 MySQL 中重命名數(shù)據(jù)庫是數(shù)據(jù)庫管理員的常見任務(wù),需要可靠的方法才能有效執(zhí)行。盡管 MySQL 不再支持舊的直接重命名命令,但它提供了替代方案。通過添加 GUI 工具(例如 dbForge Studio for MySQL),用戶可以更快、更輕松地完成該過程,而無需手動輸入命令。
dbForge Studio 提供了多種重命名方法,可適應(yīng)各種場景,以及 MySQL 和 MariaDB 中的許多其他數(shù)據(jù)庫管理選項。
產(chǎn)品試用下載、價格咨詢、優(yōu)惠獲取,或其他任何問題,請聯(lián)系。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)