我正在尝试通过laravel连接到pgsql,最后设置了所有内容(pgsql服务器正在运行,pdo已安装,安装了所有库)。我运行的是通过CPanel/WHM管理的VPS(CentOS)。
这是我正在做的事情:我正在尝试使用 migrate:install 通过工匠(Laravel 的命令行)创建一个用户数据库。
对于那些不使用Laravel的人,artisan使用php的PDO进行pgsql连接。以下是我的设置:
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'dbname',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8',
'prefix' => '',
),
我还设置了一个测试.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的错误/访问日志也是如此,到目前为止,谷歌没有任何帮助。
知道我能做什么吗?
我能够正确安装/配置所有内容。我将"主机"更改为 127.0.0.1,不确定为什么这会有所不同,但它确实:)
本地
主机指向系统上的IPV6 ::1地址。Postgresql 在处理访问列表时区分了 ipv6 和 ipv4 地址。