在 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 以获取复制的表,你可以在以下屏幕截图中看到绿色框。
结论
考虑到上述讨论,我们得出结论,出于各种原因,包括安全问题、数据可用性和可靠性等,将数据从一个数据库复制到另一个数据库很重要。我们还可以为全球不同用户提供对数据的访问权限。