我安装了最新的 pgAdmin 4 (v2.1),但我发现(相关线程),目前,通过 SSH 隧道建立连接的唯一方法是使用另一个外部进程,pgAdmin 论坛中的一个示例说:
我设置了一个隧道,如下所示:
Run Code Online (Sandbox Code Playgroud)ssh -f dpage(at)hostname(dot)enterprisedb(dot)com -L 5999: hostname.enterprisedb.com:5432 -N
(...) 我在 Mac 上运行,但同样的程序应该可以在 Linux 上运行。在 Windows 上,Putty iirc 中有一个隧道应用程序,但我不知道如何使用它。
我找到了一个简单的PuTTY 教程来使用 SSH Tunnel 建立连接。
连接已建立,但看起来,当我尝试通过 pgAdmin 连接时,它失败或被拒绝(使用127.0.0.1:3306或127.0.0.1:5432作为隧道的目的地)。为什么?
我正在尝试使用 DBeaver 通过 SSH 连接到 PostgreSQL 数据库服务器:
can't initialize tunnel
cannot establish tunnel
com.jcraft.jsch.JSchException: auth fail
Run Code Online (Sandbox Code Playgroud)
我确信 SSH 服务器工作正常。我设法使用 pgAdmin 3 和 RazorSQL 通过同一台 SSH 服务器连接到同一台 PostgreSQL 数据库服务器。我检查了IP,用户名和密码,它们是正确的。我禁用了所有防火墙。可能是什么问题?
我的设置:
我使用 DBeaver 3.7.3 x64 便携版和 Windows 7 SP1 x64 Ultimate。
错误日志窗口不会记录错误,所以我没有更多信息。
我有一个大型(几 GB)mysql 数据库,我打算通过它导入
mysql -u root -p mydb < mydb.sql
Run Code Online (Sandbox Code Playgroud)
在 SSH 会话中。
如果我的 SSH 连接断开会发生什么?
运行类似的东西是否更安全
nohup mysql -u root -p mydb < mydb.sql
Run Code Online (Sandbox Code Playgroud)
还是mysql不在乎?
使用以下
我正在设计一个过程来测试我的 postgresql 10.8 备份,方法是将它们恢复到一次性虚拟机中的随机时间点。不过,我一直无法完全自动化该过程。我在官方文档的第 8 步(第 25.3.4 节)被阻止
- 启动服务器。
执行pg_ctl start
over ssh 时,命令会挂起,直到被杀死。如果我直接通过 ssh 连接到 VM 并执行pg_ctl start
,则命令会按预期快速返回。
2012 年的这个帖子似乎描述了一个类似的场景。在我的情况,不过Postgres的过程也即使当它是挂呼叫会话被杀死成功启动(可能是9.0.5和10.8之间虽然有所改善?)。
这个 github 问题似乎相关,但遗憾的是,通过用一种我不知道的语言进行了长时间的重写“解决了”,并最终得出结论,它是pg_ctl
二进制文件中的一个错误。
如何自动执行第 8 步,以便我可以继续对备份媒体进行后续验证测试?
这是我需要破解的二进制文件中的一个突出错误吗?或者我错过了一个明智的实施?
dc1.com 上的 MongoDB 实例目前是独立的,On-Site 定期通过 ssh 隧道通过 mongodump 提取备份。
我现在想创建两个实例,一个在现场,一个在第二个数据中心,并使这三个实例成为副本集,以便备份几乎是即时的。这样,我就可以拥有一个现场备份,并在第二个数据中心中拥有一个备份,该备份始终是最新的。
如果 dc1.com 中的主 MongoDB 实例发生故障,那么就这样,无法提供任何数据,然后需要手动修复此问题,因为现场实例和辅助数据中心中的实例不应接管。这两个也不应该被质疑。他们只是作为备份。
我的问题是,当我将 --replSet 添加到主数据库,然后添加 rs.initialize() 时,该实例在某种程度上不会被识别为绑定到 localhost,而是绑定到 172.17.0.1,这是 docker 接口,我需要绑定以便容器可以连接到 MongoDB。如果我随后尝试通过rs.add("localhost:2001")
dc2.com 上的实例添加成员,则会收到有关无法混合本地主机和非本地主机数据库的错误。主实例被识别为 172.17.0.1,而不是 localhost。
“副本集配置中的所有主机名都必须是本地主机引用,或者都必须是本地主机引用;找到二分之一”
然后,我使用/sf/ask/2019044751/来发出 ars.initiate({_id:"rs0", members: [{"_id":1, "host":"127.0.0.1:1000"}]})
强制将 dc1.com 上的副本集初始化绑定到本地主机。但是当我尝试通过添加成员时,rs.add("localhost:2001")
我仍然无法做到这一点。这不再是主机名错误,而是另一个错误,我不太记得了,因为我厌倦了尝试,不得不回滚所有内容。就像连接被拒绝一样。当我执行 a 时,mongo --port 2001
我会在收到有关“isMaster”相关内容的警告后断开连接。
是否可以创建这种设置?我想做的就是避免在 MongoDB 上使用 TLS 并将备份绑定到全局可访问的接口(现场实例将位于防火墙后面,因此 0.0.0.0:1002 将无法公开访问)