MySQL - 資料庫匯出



MySQL 是最流行的關係資料庫系統之一,用於儲存和管理資料。它以表和檢視的形式組織資料,使資料處理變得更容易,因此許多組織都選擇使用 MySQL 來管理其公司的機密資料。由於資料高度機密,因此有必要備份資料庫並在需要時恢復它。因此,我們執行資料庫匯出。

在 MySQL 中匯出資料庫通常用於備份目的或在伺服器之間傳輸資料。您可以匯出整個資料庫或其一部分。匯出資料庫最簡單的方法是使用mysqldump 命令列工具。

使用 mysqldump 匯出資料庫

mysqldump 命令列工具用於在 MySQL 中建立資料庫備份。它可以用於備份整個資料庫、特定表,甚至基於表的特定行。

以下是匯出資料庫的 mysqldump 命令語法:

$ mysqldump -u username -p database_name > output_file_path

其中,

  • 使用者名稱:連線到資料庫時使用的 MySQL 使用者名稱。

  • 資料庫名稱:要匯出的資料庫的名稱。

  • 輸出檔案路徑:備份檔案的路徑。備份資料將儲存在此處。

  • >:此符號將 mysqldump 命令的輸出匯出到名為 輸出檔案路徑 的檔案中。

示例

首先,使用以下查詢建立一個名為TUTORIALS的資料庫:

Create database TUTORIALS;

執行以下查詢將當前資料庫選擇為 TUTORIALS:

USE TUTORIALS;

讓我們在上面建立的資料庫中建立一個名為CUSTOMERS的表:

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以下查詢將 7 條記錄插入 CUSTOMERS 表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

這裡,我們使用mysqldump 命令列語句將 TUTORIALS 資料庫匯出到 'datadump.sql' 檔案。執行以下語句後,我們需要輸入 MySQL 伺服器密碼。

$ mysqldump -u root -p TUTORIALS > data-dump.sql

上述命令不會產生任何可視輸出。相反,'data-dump.sql' 檔案將儲存在您執行命令的命令提示符或終端的當前工作目錄中。

僅匯出資料庫中的特定表

我們還可以使用 mysqldump 命令列工具匯出資料庫中的特定表。為此,我們使用以下語法:

mysqldump -u username -p database_name table1 table2 ... > output_file.sql

示例

在匯出之前,讓我們使用以下查詢在上面建立的 TUTORIALS 資料庫中建立兩個新表(STUDENTSEMPLOYEES):

CREATE TABLE STUDENTS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   FEES DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

這裡,我們正在建立 EMPLOYEES 表:

CREATE TABLE EMPLOYEES (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARIES DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

讓我們使用以下查詢獲取 TUTORIALS 資料庫中的表列表:

Show Tables;

如下所示,我們在 TUTORIALS 資料庫中有三個表:

Tables_in_tutorials
customers
employees
students

現在,讓我們將名為 EMPLOYEES 和 STUDENTS 的兩個表匯出到 'datadump2.sql',如下所示:

$ mysqldump -u root -p TUTORIALS employees students > output_file.sql

執行上述查詢後,它不會顯示任何輸出。相反,它將兩個表的 資料匯出到指定的檔案。

匯出主機中的所有資料庫

例如,您的主機中有多個數據庫,並且您希望在單個查詢中匯出所有資料庫。在這種情況下,我們可以使用 mysqldump 命令的“--all-databases”選項。

示例

以下是使用 --all-databases 選項匯出主機中所有資料庫的查詢:

$ mysqldump -u root -p --all-databases > database_dump.sql

上述命令不會在螢幕上顯示任何可見輸出。相反,'database_dump.sql' 檔案將儲存在您執行命令的命令提示符或終端的當前工作目錄中。

廣告