我可以正常連接使用PHP和本地使用PSQL,但Perl不。的Perl - 連接到PostgreSQL數據庫 - 在沒有找到合適的插座
my $dbh = DBI->connect("DBI:Pg:dbname=mydb,host=localhost:5432","user","pass",{'RaiseError' => 1});
我相信錯誤是因爲我的插座是在TMP:
[email protected]/opt/psql/bin $ netstat -an | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::5432 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 24728255 /tmp/.s.PGSQL.5432
unix 3 [ ] STREAM CONNECTED 24729004 /tmp/.s.PGSQL.5432
當我運行簡單的Perl腳本,它似乎在看/ var/run中:
./test.pl
DBI connect('dbname=mydb','user',...) failed: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? at ./test.pl line 6
我試圖簡單地創建一個符號鏈接,但似乎沒有工作:
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
ln: failed to create symbolic link `/var/run/postgresql/.s.PGSQL.5432': No such file or directory
其他一些簡單的東西: pg_hba.conf的信任所有本地主機連接,以及那些我子網。
postgresql.conf中有以下幾點:
的listen_addresses = '*'
嘗試'127.0.0.1',而不是'localhost'。這應該會導致它使用TCP而不是UNIX套接字。 – jordanm 2013-05-07 19:58:26