2014-03-31 64 views
2

對不起,我已經跑過SO一個多日的帖子,現在只是覺得我無處可去。我最近更新軟件給小牛,我的rails應用程序不再有效。特別是我的psql數據庫不工作。當我在我的控制檯輸入psql時,它返回「無法連接到服務器:連接被拒絕...」,當我導軌服務器時,我得到一個「PG連接不良」與相同的文本。psql:無法連接到服務器:連接被拒絕服務器是否在主機「localhost」(:: 1)上運行並接受端口5432上的TCP/IP連接?

這裏是我的pg_hba.conf文件:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#local replication  Brian_Liou        trust 
#host replication  Brian_Liou  127.0.0.1/32   trust 
#host replication  Brian_Liou  ::1/128     trust 

這裏是我的postgresql.conf

# FILE LOCATIONS 
#------------------------------------------------------------------------------ 

# The default values of these variables are driven from the -D command-line 
# option or PGDATA environment variable, represented here as ConfigDir. 

#data_directory = 'ConfigDir'  # use data in another directory 
       # (change requires restart) 
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file 
       # (change requires restart) 
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file 
       # (change requires restart) 

# If external_pid_file is not explicitly set, no extra PID file is written. 
#external_pid_file = ''   # write an extra PID file 
       # (change requires restart) 


#------------------------------------------------------------------------------ 
# CONNECTIONS AND AUTHENTICATION 
#------------------------------------------------------------------------------ 

# - Connection Settings - 

#listen_addresses = ‘*’    # what IP address(es) to listen on; 
       # comma-separated list of addresses; 
       # defaults to 'localhost'; use '*' for all 
       # (change requires restart) 
#port = 5432    # (change requires restart) 
max_connections = 100   # (change requires restart) 
# Note: Increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction). 
#superuser_reserved_connections = 3 # (change requires restart) 
#unix_socket_directories = '/tmp' # comma-separated list of directories 
       # (change requires restart) 
#unix_socket_group = ''   # (change requires restart) 
#unix_socket_permissions = 0777  # begin with 0 to use octal notation 
       # (change requires restart) 
#bonjour = off    # advertise server via Bonjour 
       # (change requires restart) 
#bonjour_name = ''   # defaults to the computer name 
       # (change requires restart) 

# - Security and Authentication - 

#authentication_timeout = 1min  # 1s-600s 
#ssl = off    # (change requires restart) 
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers 
       # (change requires restart) 
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations 
#ssl_cert_file = 'server.crt'  # (change requires restart) 
#ssl_key_file = 'server.key'  # (change requires restart) 
#ssl_ca_file = ''   # (change requires restart) 
#ssl_crl_file = ''   # (change requires restart) 
#password_encryption = on 
#db_user_namespace = off 

# Kerberos and GSSAPI 
#krb_server_keyfile = '' 
#krb_srvname = 'postgres'  # (Kerberos only) 
#krb_caseins_users = off 

# - TCP Keepalives - 
# see "man 7 tcp" for details 

#tcp_keepalives_idle = 0  # TCP_KEEPIDLE, in seconds; 
       # 0 selects the system default 
#tcp_keepalives_interval = 0  # TCP_KEEPINTVL, in seconds; 
       # 0 selects the system default 
#tcp_keepalives_count = 0  # TCP_KEEPCNT; 
       # 0 selects the system default 

我試圖刪除這個文件夾:在/ usr /本地的/ var/Postgres的,然後重新安裝postgresql使用brew。

我的Bash配置文件包括

export PGDATA=/usr/local/var/postgres 
export PGHOST=localhost 

我知道這個問題有其Mac的自動安裝的Postgres和一個沖泡安裝,比我完全失去了其他的事情。僅供參考我也是一名鐵路/程序員新手。請讓我知道我可以提供的任何其他信息來解決這個問題!

+0

實際上運行的PostgreSQL的改變? 'ps -ef | grep postgres'? –

回答

1

我終於能夠得到朋友的個人幫助!謝謝Mark Miyashita !!!!

reset-postgres(){ 
    rm -rf /usr/local/var/postgres 
    sudo sysctl -w kern.sysv.shmall=65536 
    sudo sysctl -w kern.sysv.shmmax=16777216 
    initdb /usr/local/var/postgres -E utf8 
    sleep 2 
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
    cp /usr/local/Cellar/postgresql/9.3.4/homebrew.mxcl.postgresql.plist    ~/Library/LaunchAgents/ 
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
    sleep 3 
    createdb DATABASENAME_development 
    sleep 1 
} 

可能具有版本號,這取決於你的Postgres有

+0

+1,這解決了我的問題。 – wh1tney

+0

該代碼的作用是無條件**清除所有數據庫**(rm -rf/usr/local/var/postgres),這樣就不能成爲非啓動服務器的推薦解決方案。 –

相關問題