Ubuntu环境下Rails使用PostgreSQL创建数据库失败求助
解决Rails
db:create PG::ConnectionBad 套接字连接失败问题 以下是针对Ubuntu系统下该问题的逐步排查和解决方法:
检查PostgreSQL服务状态
套接字连接失败最常见的原因是PostgreSQL服务未运行。执行命令查看状态:sudo systemctl status postgresql如果显示
inactive,启动服务并设置开机自启:sudo systemctl start postgresql sudo systemctl enable postgresql确认套接字路径是否正确
有些情况下PostgreSQL的套接字目录可能不是默认的/var/run/postgresql/,可以通过进程信息查找实际路径:ps aux | grep postgres在输出中找到包含
unix_socket_directories的行,记下对应的路径。然后修改config/database.yml,添加socket字段指定该路径:development: adapter: postgresql database: mysite_development socket: /实际的套接字路径/.s.PGSQL.5432验证数据库用户权限
Rails默认使用当前系统用户作为PostgreSQL数据库用户,需要确保该用户在PostgreSQL中存在且有足够权限。进入PostgreSQL控制台:sudo -u postgres psql执行以下命令创建用户(替换
your_username为你的系统用户名):CREATE USER your_username WITH SUPERUSER;如果用户已存在,可跳过此步骤。
手动创建数据库尝试
如果以上步骤都无效,尝试手动创建开发数据库:
在PostgreSQL控制台中执行:CREATE DATABASE mysite_development;退出控制台后再执行
rails db:create,此时应该能正常完成后续操作。
内容的提问来源于stack exchange,提问作者Adri
相关产品推荐
相关产品推荐

