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

时间:2012-12-28 18:10:57

标签: mysql ssh ssh-tunnel

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

1 个答案:

答案 0 :(得分:2)

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

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

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

mysql

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

mysql --host=127.0.0.1 --port=3307

然后将3307端口从远程服务器隧道传送到上述ssh隧道的本地3306端口。

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

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'

命令。

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

相关问题