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

标签 mysql ssh

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

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

请帮助我。

最佳答案

对 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 在评论中所述,通常只需 2 个步骤即可更快,并且您还可以避免从本地主机访问数据库的必要性:

# 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 复制到其他服务器。如果需要,首先将其复制到本地主机,然后从那里复制到服务器 yy.yy.yy.yy。 确保数据库 db_y 已在服务器 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) 取决于您的设置。

关于mysql - 将所有表从数据库复制到另一个服务器数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948329/

相关文章:

java - 递归 ORM 类的 Spring Repository 性能问题

gitlab 连接拒绝 ssh 端口 22 和 443

git - 智能地对特定远程的 git ssh 定义进行故障排除

zend-framework - 优化 (My)SQL 查询

mysql - 在 MYSQL 中按 "ENUM field"排序

mysql - Cakephp 查找或条件不工作

java - 使用 Java JSch 在防火墙设备上通过 SSH "exec" channel 执行多个命令不起作用

python - Paramiko/pysftp 连接失败并显示 "Negotiation failed/invalid DH value",但是 GUI 和 sftp 可以连接

bash - 我可以在远程服务器上运行位于本地机器上的 bash 脚本吗?

php - 如何使用 PHP 从 HTML 表单检查数据库记录