使用R中的RPostgreSQL软件包连接到postgres 13时出错“不支持身份验证方法10”

问题描述

我正在尝试使用R studio中的RPostgreSQL软件包连接到本地postgres 13服务器。我收到以下错误。我能够使用完全相同的代码连接到远程Postgres 9服务器。以下链接为我提供了一些线索,但未能解决问题。它建议更新我的psql客户端,但是它是最新的。似乎与postgres使用的身份验证方法有关,但是我并没有真正取得任何进展。任何帮助,将不胜感激。谢谢。

PostgreSQL authentication method 10 not supported

更新:我在GitHub上提出了一个问题,如下文Adrian Klaver所建议: https://github.com/tomoakin/RPostgreSQL/issues/112

# Restart R before running
library(RPostgreSQL)


# connection to the MIMIC database
mimic <- dbConnect(
  PostgreSQL(),dbname = "mimic",host = "localhost",port = 5432,user = "UN",password = "PW"
)

这是错误

Error in postgresqlNewConnection(drv,...) : 
  RS-DBI driver: (could not connect postgres@localhost:5432 on dbname "mimic": authentication method 10 not supported
)

我的会话信息是……..

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] dplyr_1.0.2       RPostgreSQL_0.6-2 DBI_1.1.0         stringr_1.4.0    

loaded via a namespace (and not attached):
 [1] dbplyr_1.4.4     crayon_1.3.4     assertthat_0.2.1 R6_2.4.1         lifecycle_0.2.0 
 [6] magrittr_1.5     pillar_1.4.4     stringi_1.4.6    rlang_0.4.8      rstudioapi_0.11 
[11] blob_1.2.1       generics_0.0.2   vctrs_0.3.4      ellipsis_0.3.1   tools_4.0.2     
[16] glue_1.4.1       purrr_0.3.4      compiler_4.0.2   pkgconfig_2.0.3  tidyselect_1.1.0
[21] tibble_3.0.1

解决方法

我要说的是这个RPostgreSQL_0.6-2

来自最新的CHANGELOG:

2017-06-19西山智明tomoakin@staff.kanazawa-u.ac.jp *来自postgresql-9.6.3的新libpq和在Sierra(macOS 10.12)上生成的Makefiles

因此,它使用的libpq(9.6.3)版本不了解SCRAM身份验证。您将需要在此处提出问题:

https://github.com/tomoakin/RPostgreSQL/issues

获取更新驱动程序的项目。

,

2个对我有用的选项。

  1. 我将pg_hba.config文件的身份验证设置从scram更改为md5,并在重新启动postgres服务器后就可以连接了。实际上我曾经尝试过,但是我在本地服务器上有2个版本的Postgres,愚蠢地设法更改了错误的文件。

  2. 在评论中还使用了Adrian Klaver建议的RPostgres(而不是RPostgreSQL软件包)。

我怀疑RPostgreSQL软件包会按照GitHub问题页面中的建议及时解决此问题。

按照这里

https://github.com/tomoakin/RPostgreSQL/issues/112

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...