在 MySQL 中將資料從一個資料庫複製到另一個資料庫
我們將瞭解將資料從一個資料庫複製到另一個資料庫的不同方法。
這種複製資料的策略在資料複製
中非常有用。由於資料複製,可以將資料提供給不同的伺服器並提供給所有使用者,而不會出現任何不一致。
資料複製的好處包括提高資料的可用性和可靠性以及減少通訊開銷。我們可以將完整或部分資料庫從一臺資料庫伺服器複製到另一臺。
在本教程中,我們將瞭解如何在 MySQL(使用相同使用者)、MS SQL Server(使用相同使用者)以及從 MySQL 複製資料到 MS SQL Server(使用不同使用者)中複製資料。
將資料從一個資料庫複製到另一個
使用 MySQL 伺服器
我們的 MySQL 伺服器中有兩個名為 students
和 person
的資料庫。person
資料庫有一個名為 customers
的表,students
資料庫有一個名為 student
的表,我們希望將其複製到 person
資料庫中。
需要注意的是,我們使用一個使用者(root)在一臺伺服器(MySQL 8.0.27)中複製資料。我們有以下資料庫(見紅色框)和表格(見綠色框)。
我們想使用以下 SQL 查詢將 student
表從 students
資料庫複製到 person
資料庫。
#MySQL Version 8.0.27
CREATE TABLE person.students SELECT * FROM students.student;
複製資料後觀察資料庫和表(見下面的截圖)。你可以在 person
資料庫中看到兩個表,customers
和 students
。
你可能已經注意到我們想從源資料庫中複製 student
表,那麼為什麼在目標資料庫中將其命名為 students
?這是因為我們在 SQL 查詢中將其命名為 students
。
使用 MS SQL 伺服器
在這裡,我們的 MS SQL Server 中有兩個名為 teachers
和 person
的資料庫。person
資料庫有一個名為 customers
的表,teachers
資料庫有一個名為 teacher
的表,我們希望將其複製到 person
資料庫中。
我們使用一個使用者在一臺伺服器(MS SQL Server)中複製資料。你可以在下面的螢幕截圖中看到當前的資料庫(見紅色框)和表(見綠色框)。
我們將使用以下命令將名為 teacher
的表從 Teachers
資料庫複製到 Person
資料庫中。
#MSSQL Server
SELECT * INTO Person..teacher FROM Teachers..teacher;
你可以在下面給出的螢幕截圖中看到複製的表格。我們現在在 Person
資料庫中有兩個表。
將資料從 MySQL 伺服器複製到 MS SQL 伺服器
你有沒有想過如果你必須將資料從你的資料庫複製到另一個使用者的資料庫?這意味著涉及不同的使用者(有時是不同的機器)。
在這裡,我們將看到如何將資料從 MySQL 伺服器複製到 MS SQL 伺服器(請注意,同一臺計算機上有兩個使用者,一個用於 MySQL,另一個用於 MS SQL Server)。
在 MS SQL Server 中右鍵單擊你的資料庫,然後選擇 Task -> Import Data
。
單擊以下螢幕截圖中的下一步按鈕。
在以下螢幕截圖中,確保資料來源為 .Net Framework Data Provider for MySQL
,將 MySQL 資料庫名稱、埠號和伺服器分別寫入 students
、3306
和 localhost
。然後,單擊下一步。
請務必注意,你可能有不同的資料庫名稱和伺服器 IP 地址。我們在同一臺機器上使用兩臺伺服器;這就是我們使用 localhost
的原因。
輸入 MySQL 伺服器的使用者名稱
和密碼
(請參見下面的螢幕截圖),然後單擊下一步
。
確保目標選擇為 SQL Server Native Client 11.0
,確認你的伺服器名稱和資料庫名稱,然後選擇身份驗證。我們在本教程中使用 Windows 身份驗證。然後單擊下一步。
在以下螢幕上單擊下一步。
根據你的要求編寫 SQL 查詢;我們正在使用以下命令從 student
表中複製所有記錄。點選下一步。
寫下你的目標表名稱(將出現在 MS SQL Server 中的名稱),然後單擊下一步。
在下面給出的螢幕上單擊下一步。
在以下螢幕截圖中,選擇立即執行
(見綠色框),或者你可以儲存包並稍後執行(見紅色框)。點選下一步。
在以下螢幕上單擊完成。
此處,以下螢幕顯示資料已被複制。單擊關閉。
檢查你的 MS SQL Server 以獲取複製的表,你可以在以下螢幕截圖中看到綠色框。
まとめ
考慮到上述討論,我們得出結論,出於各種原因,包括安全問題、資料可用性和可靠性等,將資料從一個資料庫複製到另一個資料庫很重要。我們還可以為全球不同使用者提供對資料的訪問許可權。