转储远程数据库:失败:连接到数据库服务器时出错:没有可访问的服务器

时间:2017-11-20 20:06:34

标签: mongodb ssl mongoimport mongodump mongorestore

我在www.myweb.io中有一个数据库,其中包含SSL。服务器中的mongo版本为2.6.12:本地的mongo版本为3.4.1。我想将它转储到我的本地机器,修改它,然后恢复。

我试过

mongodump --host www.myweb.io --port 22 --username myname --password "mypassword"

它给了我一个错误:

2017-11-20T20:57:07.775+0100    Failed: error connecting to db server: no reachable servers

有谁知道我应该设置哪个主持人和帖子?

PS:在我的localhost中,我可以使用Robo 3T中的以下设置连接到数据库:

1)在Connection下,指定localhost:27017

2)在SSH下,选中Use SSH tunnel,将xxx.xx.xx.xx:22指定为SSH Address

/etc/nginx/sites-enabled/myweb.io中,有listen 443 ssl

1 个答案:

答案 0 :(得分:3)

  1. 您没有通过SSL或TLS连接到数据库。

  2. 使用ssh隧道建立与mongodb的连接

    ssh -N -L 27018:localhost:27017 user@www.myweb.io

  3. 您可以指定-f让ssh进入后台

    1. 验证隧道是否正常工作
    2. 使用mongodb

      mongo --port 27018
      

      或telnet

      telnet localhost 27018
      
      1. 转储数据库

        mongodump --host 127.0.0.1 --port 27018 --db <dbName>

      2. 将其恢复到某处,进行修改

      3. 转储您的本地修改

      4. 重新应用远程本地修改,例如mongorestoremongoimport