将所有表从数据库复制到另一个服务器数据库

时间:2016-03-11 19:25:46

标签: mysql ssh

我在xx.xx.xx.xx服务器上有一个名为db_x的数据库。 我想将此数据库(db_x)的所有表移动到另一个服务器(yy.yy.yy.yy)上的另一个数据库(db_y)。

我可以通过连接到ssh来使用终端吗?

请帮帮我。

1 个答案:

答案 0 :(得分:1)

进行db_x的转储(备份)并将其导入db_y。这可以一步完成:

mysqldump -u... -p... -h xx.xx.xx.xx db_x | mysql -u... -p... -h yy.yy.yy.yy db_y

<强>更新

请注意,此解决方案仅在您可以从本地PC连接到两个数据库时才有效。

正如@BerndBuffen在评论中所述,它通常在两个步骤中更快,你也可以避免从localhost访问数据库的必要性:

# go to X server and make the dump there:
ssh xx.xx.xx.xx
mysqldump -u ... -p... db_x | gzip > db_x.sql.gz

将文件db_x.sql.gz复制到另一台服务器。如果需要,首先将其复制到localhost,然后从那里复制到服务器yy.yy.yy.yy。 确保已在服务器Y上创建数据库db_y

# go to Y server and import the dump there:
ssh yy.yy.yy.yy
gzip -dc db_x.sql.gz | mysql -u ... -p... db_y

当您已经连接到相应的服务器时(通过ssh)是否需要-h xx.xx.xx.xx和/或-h yy.yy.yy.yy开关 取决于你的设置。