2013年1月21日

postgresql連線問題(beta)


  1. Cdbexception
  2. 這是一個連線數超過資料程式庫限制連線數的的問題。
    首先檢視一下資料庫內,現在的連線數:
    • postgres=# select count(1) from pg_stat_activity; #目前連線數
    • postgres=# show max_connections; #系統最大連線數
    • postgres=# show superuser_reserved_connections; #保留給superuser的連線數
    解決方法:
    • 增大postgresql.conf中的參數max_connections或superuser_reserved_connections 值(修改這兩個參數都需要重啟DB)
    • 開發程式上檢查連線數是否正常關閉等,應急情況下,可把pg_stat_activity中IDLE的程式移除,kill procpid;

  3. psql: could not connect to server: Connection refused (0x0000274D/10061)
  4. 這個問題一般是以下原因造成的:
    • 伺服器沒起來,ps -ef|grep postgres檢視是否存在PG程式
    • 監聽問題,cat postgresql.conf|grep listen 檢視監聽位址是否正確
    • 服務端高階使用者能進去,其他用戶不行,檢查是否超出最大連線數限制
    • 以上都沒問題,伺服器端能連進去,但用戶端不行,這時需要檢視pg_hba.conf檔案
    • 以上都沒問題,檢查伺服器端的iptables,開啟防火牆的存取通訊埠