You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac系统下R Studio连接PostgreSQL报错及账号查询问题

M1 macOS下R Studio连接PostgreSQL问题解决

一、SCRAM认证错误修复

报错信息:

Error in postgresqlNewConnection(drv, ...) : RPosgreSQL error:
could not connect postgres@localhost:5432 on dbname "postgres": SCRAM
authentication requires libpq version 10 or above

原因是RPostgreSQL依赖的libpq版本过低,不支持PostgreSQL 10+默认的SCRAM认证机制,两种解决方式如下:

方式1:改用RPostgres包(推荐)

RPostgres是更现代的PostgreSQL R客户端,原生支持SCRAM认证,无需处理libpq版本问题:

# 安装包
install.packages("RPostgres")
# 建立连接
library(RPostgres)
con <- dbConnect(RPostgres::Postgres(),
                 dbname = "postgres",
                 host = "localhost",
                 port = 5432,
                 user = "你的数据库用户名",
                 password = "你的数据库密码")

方式2:重新编译RPostgreSQL适配新版libpq

如果坚持使用RPostgreSQL,需要让它链接到支持SCRAM的libpq(通过Homebrew安装的PostgreSQL自带新版libpq):

  1. 终端安装最新PostgreSQL:
    brew install postgresql
    
  2. 在R中指定pg_config路径并重新安装RPostgreSQL:
    Sys.setenv(PG_CONFIG = "/opt/homebrew/bin/pg_config")
    install.packages("RPostgreSQL", type = "source")
    

重新安装后即可正常使用原连接代码。

二、查找/重置PostgreSQL账号密码

默认用户名

PostgreSQL在M1 macOS下的默认超级用户通常是以下两种:

  • 官方默认用户:postgres
  • Homebrew安装的用户:你的macOS系统登录用户名(比如你电脑登录名是jordan,用户名就是jordan)

重置/设置密码

如果忘记密码或未设置,按以下步骤操作(Homebrew安装的情况):

  1. 停止PostgreSQL服务:
    brew services stop postgresql
    
  2. 启动无认证模式(临时跳过密码验证):
    postgres -D /opt/homebrew/var/postgres -c "authentication_method=trust"
    
  3. 新开一个终端,连接数据库:
    psql -U postgres  # 或者用你的系统用户名,比如psql -U jordan
    
  4. 设置用户密码(替换新密码为你要设置的密码):
    ALTER USER postgres WITH PASSWORD '新密码';
    
  5. 退出psql:输入\q回车,然后关闭无认证的服务终端,重新启动正常服务:
    brew services start postgresql
    

查看所有数据库用户

连接到psql后,输入\du即可列出所有数据库用户及其权限。

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 10:41:04