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