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

Ruby on Rails新建应用启动时PostgreSQL数据库连接错误求助

Rails PostgreSQL数据库连接错误排查方案

以下是针对你遇到的ActiveRecord::DatabaseConnectionError的具体排查步骤:

1. 确认数据库用户与权限

  • 登录PostgreSQL超级用户控制台:sudo -u postgres psql
  • 执行命令检查用户是否存在:
    SELECT usename FROM pg_user;
    
    确保你在database.yml中填写的用户名出现在结果里
  • 给用户授予目标数据库的连接权限:
    GRANT CONNECT ON DATABASE blog_development TO YOUR_ACTUAL_USERNAME;
    

2. 直接测试用户密码有效性

用PostgreSQL客户端直接测试连接,排除Rails层面的问题:

psql -U YOUR_ACTUAL_USERNAME -d blog_development -h localhost

输入你设置的密码,如果无法连接,说明用户密码或用户配置本身有问题;如果能连接,再排查Rails配置。

3. 修正database.yml配置细节

  • 确保default块中的username和password已经替换为实际的用户名和密码,不是占位符USERNAME和PASSWORD
  • 取消development块中host: localhost的注释(部分系统默认使用socket连接,密码验证规则不同):
    development:
      <<: *default
      database: blog_development
      host: localhost
    
  • 确认blog_development数据库已创建,若未创建执行:
    createdb blog_development
    

4. 检查PostgreSQL认证配置(pg_hba.conf)

  • 找到pg_hba.conf文件位置(不同系统路径不同,示例:macOS为/usr/local/var/postgres/pg_hba.conf,Ubuntu为/var/lib/postgresql/[版本号]/main/pg_hba.conf)
  • 修改本地IP连接的认证方式为md5或scram-sha-256(替换原来的peer或ident):
    host    all             all             127.0.0.1/32            md5
    host    all             all             ::1/128                 md5
    
  • 重启PostgreSQL服务使配置生效:
    # macOS(Homebrew)
    brew services restart postgresql
    # Ubuntu/Debian
    sudo systemctl restart postgresql
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:20:45