R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库

2023-11-24

我正在尝试使用 R 从内部连接到远程 PostgreSQL 数据库RPostgreSQL包,并且我收到似乎与连接的 SSL 设置相关的错误。我已经验证我可以使用命令行进行连接psql,所以我知道连接是有效的并且可以从我的计算机访问。

我在 R 中的第一次连接尝试如下(其中<MyHost> and <MyPass>已针对我的连接正确填写):

library(RPostgreSQL)
pg <- dbDriver( 'PostgreSQL' )
con = dbConnect( pg, host=<MyHost>, dbname='warehouse', 
                 user='warehouse', password=<MyPass>, port=5432 )

我在 R 中收到的错误是:

RS-DBI driver: (could not connect warehouse@<MyHost>.com:5432 on 
dbname "warehouse": FATAL:  no pg_hba.conf entry for host "75.166.243.177", 
user "warehouse", database "warehouse", SSL off

我理解这意味着我需要对我的连接应用 SSL 加密,因此我尝试了以下操作,这似乎适用于此处的 OP:使用 R 通过 SSL 连接到 Postgres

library(RPostgreSQL)
pg <- dbDriver( 'PostgreSQL' )
con = dbConnect( pg, host=<MyHost>, dbname='dbname=warehouse sslmode=require', 
                 user='warehouse', password=<MyPass>, port=5432 )

我当时收到的错误是:

RS-DBI driver: (could not connect warehouse@<MyHost>:5432 on dbname 
"warehouse": sslmode value "require" invalid when SSL support is not 
compiled in

我找到了这篇文章(当未使用外部数据包装器编译 SSL 支持时,Postgres SSLMode 值“require”无效)这表明我构建的 PostgreSQL 可能没有--with-openssl编译时包含了该标志,但运行 pg_config 显示该标志确实在我的构建中设置。这是有道理的,因为当我使用 psql 命令行工具时,我能够使用 SSL 连接到数据库。

由于担心我的 PostgreSQL 安装可能有问题,我完全删除了它。然后我运行了上面的两个 R 代码片段,只是为了好玩,我收到了完全相同的错误。我没想到这一点,但这似乎表明 (a) 我不需要本地安装 PostgreSQL 来使用RPostgreSQL包或 (b) 我在我的计算机上的其他地方安装了令人困惑的 PostgreSQLnot建造与--with-openssl包括标志。我努力了locate postgresql在命令行中,没有看到任何明显的看起来像单独安装的东西。无论如何,我仍然无法从 R 中成功连接到远程 PostgreSQL 数据库。

我在这里搜索了 Stack Overflow 以获得见解,似乎有许多类似性质的未解决问题,即用户由于某种原因无法与远程服务器建立连接。我尝试安装 Kirill Müller 在这里维护的 RPostgres 软件包(https://github.com/rstats-db/RPostgres),但即使在尝试使用手动指定 include 和 lib 路径之后,我也无法让 R 包安装识别我的本地 PostgreSQL 安装R CMD INSTALL,正如生成的错误消息所建议的那样(不过我可能在这里错过了一些东西......)。听起来有些用户的运气更好RPostgres比与RPostgreSQL,但是我再次无法安装这个软件包。

我不知道还能做什么,如果我无法弄清楚如何尽快建立连接,我将不得不求助于其他技术。任何帮助将不胜感激。


感谢您发帖!你实际上帮我们解决了这个问题。我们是这样做的:

  • Reboot your Mac into Recovery Mode by restarting your computer and holding down Command+R until the Apple logo appears on your screen.
  • Click Utilities > Terminal.
  • 在终端窗口中,输入csrutil disable并按 Enter 键。
  • 重新启动您的 Mac。
  • 打开终端。
  • Run sudo rm /usr/lib/libpq.5.dylib
  • Run sudo ln -s /Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5‌​.dylib
  • 现在您可以连接到数据库了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库 的相关文章

随机推荐

  • 可以在 Excel VBA 中全局声明工作表对象吗?

    我正在重构 Excel 2003 工作簿中的多个模块 并且在每个模块的每个过程中声明相同的工作表集 我只想在全球范围内声明一次 我可以将工作表名称设置为文字 例如 Public Const xlwkGSModel gs model As S
  • Numpy:与唯一坐标位置对应的值的平均值

    所以 我已经浏览 stackoverflow 很长一段时间了 但我似乎找不到解决我的问题的方法 考虑一下这个 import numpy as np coo np array 1 2 2 3 3 4 3 4 1 2 5 6 1 2 value
  • Android的bulkTransfer在读取数据时返回-1,但缓冲区中确实有一些数据

    我在 Galaxy Tab p7300 中编写了一个应用程序 通过 otg 电缆与密钥 scsi 设备 进行通信 我第一次可以使用bulkTransfer 读取数据 但下次就不能了 然后我使用 Ellisys Visual USB 嗅探数据
  • Blazor 路线在同一页面发生变化

    我当前的设置 NET Core 3 预览版 6 Blazor 服务器端渲染 在 Blazor 页面中 我有类似以下内容 page page page page Id With Parameter public string Id get s
  • 如何在RDLC中设置参数值

    我在报告中添加了两个用于日期范围的文本框 为了填充文本框中的值 我为文本框设置了参数 现在 日期范围来自名为 DateRange 的表单 该表单具有两个 DateTimePickers 如何将rdlc中文本框的值设置为等于这些DataTim
  • NSInteger 计数乘以 4?

    我不明白为什么这个 NSInteger 计数器会增加到数据库行真实值的 4 倍 也许这很愚蠢 但我真的不明白 到目前为止谢谢 NSInteger i i 0 for NSDictionary teil in gText NSLog teil
  • 相当于连接 Sum 的字符串

    我想要一个查询在第一行输出左表中的 ID 和连接表中的描述 Schema person id int role id int description varchar 100 personrole personid int roleid in
  • jquery ui 对话框在按钮和内容 div 上使用相同的类打开多个对话框

    我想通过在按钮和内容 div 上使用相同的类来打开多个对话框 下面的方法有效 但仅适用于第一次 jQuery helpDialog hide jQuery helpButton click function jQuery this next
  • 如何阻止 g++ 链接不需要的异常处理代码?

    我正在使用为arm eabi 编译的GCC G 开发嵌入式应用程序 由于资源限制 我尝试禁用标准 C 异常处理 我正在用 fno exceptions 编译代码 nostartfiles ffreestand 当一个类的全局实例存在 并且该
  • 为什么 LINQ to SQL 实体关联在插入新记录时会创建新(重复)行?

    我正在尝试使用 LINQ to SQL 插入一个新实体 并且实体与用户实体关联 新实体的插入成功 但我现有的用户实体被插入 就好像它是新用户一样 代码如下所示 var someEntity new Entity someEntity Use
  • InterWorks 在其 Workbook SDK 中使用什么 Tableau API?

    InterWorks 有一个 Workbook SDK 作为其 Power Tools for Tableau 产品的一部分 有谁知道他们如何能够做到这一点 SDK 可以在没有 Tableau Server 的情况下访问工作簿 因此我认为它
  • 如何在iOS平台上实现快速图像滤镜

    我正在开发 iOS 应用程序 用户可以在其中应用一组特定的照片滤镜 每个滤镜基本上都是一组具有特定参数的 Photoshop 操作 这些行动是 级别调整 亮度 对比度 色相饱和度 单个和多个叠加 我在代码中使用循环遍历图像中所有像素的算术表
  • 转换 JSON 格式(分组依据)

    我有这样的 JSON 对象 name cat value 17 group animal name dog value 6 group animal name snak value 2 group animal name tesla val
  • 递归搜索非二叉树中的节点

    我想在非二叉树中搜索一个项目 任何节点都可以有 n 个子节点 并立即退出递归 所讨论的节点可以是任何节点 而不仅仅是叶子节点 这是我的代码 但我没有得到完整的搜索 private nNode recursiveSearch data gi
  • 在 Django 中运行 PHP

    有没有办法在 django 中运行 PHP 脚本 我在 TinyMCE 中有一个运行 PHP 脚本的插件 并且它能够使用 XAMPP 的 Apache 工作 然而 Django确实支持PHP脚本的运行 因此该插件无法工作 我想知道是否有办法
  • PHPExcel 合并单元格上的行自动高度/换行文本

    有没有在 PHP Excel 中设置行自动高度的好方法 到目前为止 我已经看到您可以使用固定高度 您可以预先指定您想要的行的高度 我还发现 如果您不使用合并单元格 则可以使用自动高度 PHPExcel 合并单元格的动态行高 如何在phpex
  • 修复生成条形码时“GDI+ 中发生一般错误”的问题

    我正在用 C 编写一个条形码生成器 我可以将条形码生成为位图 并可以在 Picturebox WindowsForms 中显示它们 另一方面 我无法将条形码保存为 gif 或 jpeg 文件 我的条形码是位图文件 这是我的代码 Bitmap
  • Safari/Chrome 开发者工具调试 CSS 覆盖

    Safari Chrome 开发者工具通过删除 CSS 规则来指示 CSS 规则被其他内容覆盖 如图所示 有时我发现自己无法从 CSS 文件中找出导致该规则被忽略的原因 但 Safari 本身肯定会在它击穿它时知道这一点 有没有办法知道什么
  • 客户端 (JS) 和服务器 (PHP) 中的 AES 256

    我尝试使用相同类型的操作 即 AES 256 在服务器端和客户端上加密和解密数据 在服务器上我使用 PHP 客户端我使用 CryptoJS 到目前为止我只能在服务器上加密和解密客户端 请参阅代码 JS
  • R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库

    我正在尝试使用 R 从内部连接到远程 PostgreSQL 数据库RPostgreSQL包 并且我收到似乎与连接的 SSL 设置相关的错误 我已经验证我可以使用命令行进行连接psql 所以我知道连接是有效的并且可以从我的计算机访问 我在 R