我一直在使用一些远程服务器,并厌倦了通过ssh隧道(-l 3306:localhost:3306)转发MySQL调用的延迟,所以我想找到一种方法来快速轻松地克隆远程(实时)数据库我的本地开发者机器,但大多数在线资源是从一个ssh-able服务器,到另一个,而不是我想要的,克隆远程数据库到我正在连接的机器。
答案 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'
命令。
对我来说,这绝对是在本地克隆您的实时数据库以进行开发的最简单,最快捷,最好的方式。