2012-08-15 107 views
1

我试图通过laravel连接到pgsql,并最终得到一切设置(pgsql服务器运行,pdo安装,所有库安装)。我正在通过CPanel/WHM管理的VPS(CentOS)上运行。无法连接到PgSQL通过Laravel SQLSTATE [08006] [7]致命

以下是我在做什么: 我试图通过使用migrate:install的artisan(Laravel的命令行)创建用户数据库。

对于那些不使用Laravel的人来说,artisan使用php的PDO来连接pgsql。这里是我的设置:

'pgsql' => array(
     'driver' => 'pgsql', 
     'host'  => 'localhost', 
     'database' => 'dbname', 
     'username' => 'username', 
     'password' => 'password', 
     'charset' => 'utf8', 
     'prefix' => '', 
    ), 

我还设置一个test.php的文件:

$dbconn = pg_connect("host=localhost port=5432 dbname=dbname user=username password=password"); 

这也将失败。我使用phpPgAdmin来查看发生了什么,所有的权限都设置正确,数据库显示,用户名是正确的,与密码相同。我检查了postgre(版本8.4.12 btw)在哪里运行,phpPgAdmin告诉我“localhost:5432”。

我通过命令行得到的错误是:

SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host "::1", user "myusername", database "my_database", SSL OFF 

现在,我试图找到pg_hba.conf文件,但我不能完全肯定到哪里寻找它。就这一点而言,pg和google的错误/访问日志也一样没有任何帮助。

关于我能做什么的想法?

回答

1

localhost指向您的系统上的IPV6 :: 1地址。 Postgresql在处理访问列表时使得ipv6和ipv4地址有所不同。

+0

谢谢,你救了我的一天! :d – inf3rno 2013-07-09 10:33:24

2

我能够正确地安装/配置所有东西。我改变了“主机”为127.0.0.1,不知道为什么这有所作为,但它确实:)