在 MySQL 中複製資料庫

Rashmi Patidar 2023年1月30日
  1. 在 MySQL 中的同一伺服器例項上覆制資料庫
  2. 在 MySQL 中使用|或管道運算子複製命令
在 MySQL 中複製資料庫

建立現有資料庫的副本稱為 MySQL Clone 方法。克隆包括一次性建立表結構、約束、函式、過程、觸發器以及與表相關的所有功能的副本。

這些功能使使用者更加可靠,即使一個節點出現故障,副本或克隆也可以提供服務。當發生意外丟失或故障時,製作資料庫副本和克隆會有所幫助。

備份過程可以每天進行,也可以在特定的時間間隔內進行。在同一伺服器例項上覆制資料庫的方法如下。

在 MySQL 中的同一伺服器例項上覆制資料庫

將源資料庫複製到 SQL 指令碼檔案中。建立一個新的目標資料庫,然後將 SQL 指令碼檔案匯入新資料庫。

這是一個三步過程。

> 	mysql -u root -p
	****
>	mysqldump -u root -p firstDb > firstDbDump.sql
>	create database newDb;
>	mysql -u root -p newDb < firstdump.sql
> 	show databases;
> 	use newDb;
>	show tables;

上面第一種方法的詳細描述和命令如下。

  1. 要繼續第一種方法,請在本地系統中安裝 MySQL 伺服器 8.0。

  2. 繼續安裝過程,安裝成功後,到達 bin 路徑。

  3. 開啟環境變數,在系統 PATH 變數中新增 MySQL 系統的路徑。它允許從檔案系統中的任何位置訪問 MySQL。

  4. 開啟命令提示符,輸入如上所示的命令。此命令啟用 MySQL 提示符的使用。

    -u 屬性指定執行該值的使用者名稱; root 是使用者名稱。 -p 屬性指定密碼,該密碼位於另一行中。

    密碼永遠不會新增到命令中。它以加密格式出現在另一行中。

  5. 輸入命令將檔案從該位置複製到臨時中間檔案。

  6. mysqldump -u root -p database_name_to_be_cloned > filename_for_clone 是指定 mysqldump 實用程式的命令,使用者名稱和密碼作為選項。

    它將資料庫名稱作為引數並將轉儲檔案放入檔案中。 > 引數將輸出定向到特定檔案。

  7. 如果沒有提供檔名的絕對檔案路徑,SQL 檔案將儲存在安裝 MySQL 伺服器的 bin 目錄中。

  8. 建立一個新資料庫,其中應該匯入 SQL 以克隆現有資料庫。

  9. 一旦一個臨時或中間檔案形成,它可以再次使用 < 運算子讀入新形成的資料庫。運算子將 SQL 結果重定向到 newDb 資料庫中。

  10. 可以使用命令 show databases; 檢查資料庫。此命令將列出當前 SQL 連線中的所有資料庫。

  11. use 命令允許使用者使用指定的資料庫。use 命令將引數作為資料庫名稱。

  12. show tables 允許使用者列出資料庫中存在的所有表。因此,可以使用最後三個命令檢查複製的內容。

在 MySQL 中使用|或管道運算子複製命令

一個線性命令獲取源資料庫的轉儲並重定向到另一個目標資料庫。

> mysqldump -u root -p sourceDb | mysql -u root -p targetDb
  1. 到達安裝 MySQL 的 bin 資料夾。

  2. bin 資料夾開啟命令提示符。

  3. 使用上面的命令,事先分別建立源資料庫和目標資料庫。

  4. 該命令使用 mysqldump 實用程式建立 SQL 轉儲,將使用者名稱和密碼作為強制選項。並且輸出被重定向到另一個目標資料庫。

  5. |或管道符號主要是一種 LINUX/UNIX 命令運算子,允許使用者在一行中使用兩個或多個命令。

    它充當管道,將第一個命令的輸出提供給另一個命令。第二個命令通常使用管道符號分隔。

  6. 該命令與方法一中描述的相同,並且在一行中使用管道符號。

附上上述命令成功執行的截圖。

使用管道運算子的 mysql 複製命令

當我們輸入上述命令時,它會提示使用者輸入兩次密碼。根據此處的命令,兩次提到了 -p 選項,要求使用者輸入兩個資料庫的密碼。

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相關文章 - MySQL Database