mysql - 如何将远程mysql数据库克隆到本地开发机器?

标签 mysql ssh ssh-tunnel

我一直在使用一些远程服务器,并且厌倦了通过 ssh 隧道 (-l 3306:localhost:3306) 延迟转发 MySQL 调用,因此我想找到一种方法来快速轻松地克隆远程(实时)数据库是我的本地开发机器,但大多数在线资源来自一台支持 ssh 的服务器,到另一台服务器,这不是我想要的,将远程数据库克隆到我连接的机器。

最佳答案

使用远程端口从您的开发计算机连接到本地 MySQL 端口,默认为 3306

ssh server.address.com -R 3307:localhost:3306

然后在服务器上,您可以使用默认值登录到远程服务器的数据库

mysql

命令。或者从那里登录到您的本地开发数据库,​​

mysql --host=127.0.0.1 --port=3307

然后,这会将 3307 端口从远程服务器通过上述 ssh 隧道传输到本地 3306 端口。

因此,您可以直接对本地mysql数据库运行mysqldump命令。

mysqldump --all-databases | mysql --host=127.0.0.1 --port=3307

第一部分将所有数据库转储到 stout 中,但您可以使用命令的后半部分将其直接通过管道传输到本地数据库。

**仅供引用,我省略了所有登录信息,以使所有命令尽可能简单,同时也尽力解释每一位,但对于实际操作,我使用直接

ssh server.address.com -R 3307:localhost:3306 'mysqldump --all-databases -uroot | mysql --host=127.0.0.1 --port=3307 -uroot'

命令。

对我来说,这绝对是在本地克隆实时数据库以进行开发的最简单、最快和最好的方法。

关于mysql - 如何将远程mysql数据库克隆到本地开发机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073833/

相关文章:

没有真实性验证的python ssh

python - 为什么 sshtunnel 模块将未知行打印到标准输出?

mysql - 通过 PhpStorm 进行 SSH 隧道 MySQL 连接和套接字连接

python - 在 mysql/python 中转义整个字符串

php - 如何存储自定义页眉

MySQL - 根据周/月数字获取 sum()

linux - Perl 系统返回代码 65280 并成功

batch-file - 使用多个选项卡启动 MobaXterm 的批处理脚本

ssh-tunnel - 通过代理的 AWS DocumentDB

java - Android - Create Table 中的插入操作 - 空对象引用错误