pg_dump从远程服务器到localhost

时间:2015-05-13 22:22:01

标签: postgresql ssh pg-dump

您可以帮助我从远程AWS服务器上的postgreSQL数据库转储到本地计算机上的postgreSQL数据库。

我一直在尝试使用this堆叠帖子中的答案来完成它,但它一直在失败。

我正在使用的命令是

.state("loginABCD", 
  { url: "/login/:a/:b/:c/:d",
    templateUrl: "login.html"
    controller: function($stateParams) {
      console.log($stateParams.a + $stateParams.b);
      }
  })

但我一直收到错误

pg_dump -C -h ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev

无法弄清楚我做错了什么

要添加,pg_dump: too many command-line arguments (first is "paycloud_dev") 是我在本地计算机和远程服务器上的postgreSQL中设置的角色。 dev_user是两者(所有者为paycloud_dev

上的数据库名称
  

修改1

根据因某种原因被删除的帖子尝试下面的命令

dev_user

现在给我错误

pg_dump -C -h ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev 

我继续使用AWS并注意到这是服务器的弹性IP。然后我尝试了以下(私有IP地址)

pg_dump: [archiver (db)] connection to database "paycloud_dev" failed: could not connect to server: Connection refused
Is the server running on host "ec2-59-16-143-85.eu-west-1.compute.amazonaws.com" (59.16.143.85) and accepting
TCP/IP connections on port 5432?

这要求我输入paycloud_dev的密码,当我输入它时会暂停2或3分钟并返回:

pg_dump -C -h 170.30.43.35 -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev

我已尝试编辑AWS安全组以添加接受所有流量的规则(端口范围0-65535)但发生了同样的错误。

  

修改2

按照pokoli的帖子尝试以下内容

pg_dump: [archiver (db)] connection to database "paycloud_dev" failed: could not connect to server: Connection refused
Is the server running on host "170.30.43.35" and accepting
TCP/IP connections on port 5432?

虽然不行。它首先要求我为我的笔记本电脑的psql密码,然后我可以输入任何东西,它给出了一个错误。

ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com pg_dump -C -h  -U dev_user paycloud_dev | psql -U dev_user paycloud_dev

尝试“pg_dump --help”获取更多信息。

任何?

2 个答案:

答案 0 :(得分:6)

您必须将ssh连接到远程主机,执行转储并将其传送到本地计算机。以下命令应该:

ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -C pg_dump  -U dev_user paycloud_dev | psql -U dev_user paycloud_dev

如果需要,该命令将询问两个用户的密码,并且localhost上应该存在playcloud_dev数据库,否则转储将失败。

答案 1 :(得分:2)

尝试通过ssh隧道执行此操作。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="books">

  <li>
    <h2>Book 1</h2>
    <div>
      Book 1 story here
    </div>        
  </li>

  <li>
    <h2>Book 2</h2>
    <div>
      Book 2 story here
    </div>        
  </li>

</ul>

第一行创建ssh隧道和端口映射。

在&#34;安全组&#34;中查看您的AWS安全设置,可能您忘记了打开端口。