MySQL 轉儲遠端資料庫
本文介紹如何轉儲 MySQL 遠端資料庫。
什麼是 MySQL 轉儲
MySQL 轉儲是將 SQL 資料庫和 MySQL 資料庫包備份到另一臺伺服器的過程。該過程通常碰巧將記錄從一個地方備份到其副本。
通常這個過程是計劃好的並按時迭代。MySQL 為使用者提供了 mysqldump
實用程式來重新建立具有許可權的資料庫。
該實用程式在系統中建立一個平面檔案,其中包含所有 SQL 語句以重新生成架構。
轉儲所在的伺服器不一定是 MySQL 伺服器。DumpFile
是跟蹤所有資料庫和模式的檔案。
在備份檔案的幫助下,可以在另一個例項或伺服器上重新建立資料庫模式。該檔案包含一組 SQL 語句,如 creating
和 insert
,它們在另一個位置重新填充類似的架構層次結構(資料庫->表->檢視->函式->記錄)。
轉儲過程通常需要 30 分鐘或更長時間,具體取決於資料庫的大小。
MySQL 轉儲的先決條件是:
- 必須具有對資料庫、函式、檢視、觸發器的所有訪問許可權才能使用該實用程式。
- 轉儲檔案應該具有建立、更改、插入許可權,因為它將重新建立新模式並且需要對它們進行更改和插入操作。
MySQL Dump 的不同語法
所有資料庫的 MySQL 轉儲語法:
mysqldump [options] --databases database_name ... > backupFileName.sql
MySQL 轉儲表的語法:
mysqldump [options] database_name [table_name ...] > backupFileName.sql
MySQL 工作臺的 MySQL 轉儲語法:
mysqldump [options] --all-databases > backupFileName.sql
上述語法形成了資料庫、表和所有資料庫的轉儲。其引數的解釋如下。
- 關鍵字
mysqldump
必須始終位於開頭。它表示 MySQL 語句要建立轉儲。它表示需要形成 SQL 轉儲。 - 後面跟關鍵字,options 是非強制屬性,表示使用者可以根據需要新增/刪除 options。選項示例如下:
2.1 命令-u root -p
有連字元u
和連字元p
的選項來指示選項列表中的使用者名稱和密碼屬性。root
是 MySQL 中設定的使用者名稱,密碼是使用者的選擇。 --databases
關鍵字允許使用者指定要備份的資料庫名稱,後跟資料庫名稱。- 對於表的轉儲,指定資料庫名稱後跟表名,語法與上面給出的相同。
- 要建立工作臺內所有資料庫的備份,直接傳遞
--all-databases
檔案中沒有任何特定的資料庫名稱。 >
符號指定第一部分的輸出必須傳遞給運算子之後提供的檔案。backupfileName.sql
是儲存所有轉儲檔案的檔名。檔名是相對路徑而不是檔案的絕對路徑,它會在 MySQL 開發者工作臺的 bin 資料夾中建立備份檔案。
MySQL 從遠端伺服器轉儲到本地機器
MySQL 從遠端伺服器轉儲到本地機器的命令如下。
當遠端伺服器上沒有安裝 MYSQLdump
時,查詢有效。在這種情況下,需要建立從本地機器到遠端伺服器的隧道,然後將資料轉儲到本地機器中。
LINUX 環境是 ssh 安全隧道的先決條件。ssh
命令也同樣適用。
建立 ssh 隧道的命令如下。
ssh -f -L3310:localhost:3306 user@remote.server -N
ssh
關鍵字允許系統建立與遠端伺服器的安全加密連線。使用此命令,使用者可以與任何知道伺服器詳細資訊的遠端計算機建立安全連線。
ssh
命令有多種可用選項。
-
-f
選項使程序在程序實際執行之前進入後臺。 -
-L
選項指定本地或客戶端機器埠將被轉發到遠端主機和伺服器機器埠。在上面的查詢中,埠
3310
是程序將啟動的遠端主機埠。埠3306
是本地主機伺服器埠。 -
-N
選項用於安全轉發埠。該命令是在本地和遠端伺服器之間建立一個隧道。
mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name
mysqldump
關鍵字宣告主機建立資料庫轉儲。一旦建立了安全連線,就會形成轉儲。
-P
選項指定遠端機器建立連線的埠。在上述情況下,埠是3310
。-h
選項說明遠端伺服器的主機名。此處使用隧道過程建立連線。-u
選項表明引數 next 是幫助建立與遠端伺服器的安全連線的使用者名稱。-p
選項說明連線遠端伺服器時要使用的密碼。
上述語句中提供的資料庫名和表名說明了要從遠端伺服器轉儲到本地計算機的表名。
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