【问题标题】:Rails: rake db:create:all (could not connect to server) psql works fineRails:rake db:create:all(无法连接到服务器)psql 工作正常
【发布时间】:2013-11-20 12:37:10
【问题描述】:

我查看了herehere,但仍然无法解决我的问题。 我的设置可以在我的普通 linux 上完美运行,但是当我尝试在我的 mac 上重新创建它时,postgres 无法与 rails 一起使用。在遵循 railscasts 的these 指令后,我开始运行 rake:db:create:all

运行 rake db:create:all:

$ rake db:create:all                                                                 -- 
could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

但运行 psql 工作正常:

$ psql
psql (9.3.1)
Type "help" for help.

crashandburn4=#

检查哪个端口 postgres 在产量上运行:

$ cat /etc/services |grep post
postgresql      5432/udp    # PostgreSQL Database
postgresql      5432/tcp    # PostgreSQL Database

所以它似乎不是一个不正确的端口,我的 database.yml 明确指出了端口:

# database.yml
development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: myusername
  password:
  port: 5432

test:
  adapter: postgresql
  encoding: unicode
  database: blog_test
  pool: 5
  username: myusername
  password:
  port: 5432


production:
  adapter: postgresql
  encoding: unicode
  database: blog_production
  pool: 5
  username: myusername
  password:
  port: 5432

运行 netstat 看起来也不错(我认为):

$ netstat -a | grep postgre
tcp6       0      0  localhost.postgres     *.*                    LISTEN     
tcp4       0      0  localhost.postgresql   *.*                    LISTEN     
tcp6       0      0  localhost.postgres     *.*                    LISTEN     

除了打电话给巫医之外,我能想出的所有方法都可以尝试诊断问题:) 有人有什么想法吗?

编辑:解决了我的问题(很好的旧橡皮鸭调试),我想无论如何我都会发布以帮助任何其他花费一个小时挖掘和仔细检查配置文件的可怜的灵魂。

【问题讨论】:

    标签: ruby-on-rails postgresql rails-postgresql


    【解决方案1】:

    不正确的配置,这是通过在配置中包含主机名来解决的(见下文),一个有趣的注意是,这仅对我正在运行的 macbook pro 是必需的,并且不会出现在我使用的 Linux 机器上.

    development:
      adapter: postgresql
      encoding: unicode
      database: blog_development
      pool: 5
      username: myusername
      password:
      host: localhost
      port: 5432
    
    test:
      adapter: postgresql
      encoding: unicode
      database: blog_test
      pool: 5
      username: myusername
      password:
      host: localhost
      port: 5432
    
    
    production:
      adapter: postgresql
      encoding: unicode
      database: blog_production
      pool: 5
      username: myusername
      password:
      host: localhost
      port: 5432
    

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 2012-05-16
      • 2014-10-22
      • 2012-09-10
      • 1970-01-01
      • 2016-08-10
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多