0

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

4

1 回答 1

2

使用远程端口从您的开发机器连接到本地 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'

命令。

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

于 2012-12-28T18:10:57.117 回答