我尝试使用DBIx::Class
连接到远程 PostgreSQL数据库。
我的连接字符串:"DBI:Pg:database=asterisk:host=example.com:hostaddr=10.10.10.10:port=5432", $user, $pass
example.com
确实解析为10.10.10.10',将两者都交换到IP或只有host = IP都会导致
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 /usr/local/share/perl/5.10.1/DBIx/Class/Storage/DBI.pm line 1489. at db-access.pl line 26
在这个debian上我没有或想要postgresql,但我确实有libdbd-pg-perl
。并且DBI->available_drivers
说我确实有Pg
(在我安装图书馆之前它没有。)
我怎样才能知道它想要做什么,我还需要安装其他任何东西吗?有问题的服务器被配置为允许来自运行此代码的计算机所在的10.100.*
地址的连接,并且我可以使用诸如PSequel和pgAdmin之类的工具在我的工作站(同一网络)上与相关的db用户连接
答案 0 :(得分:4)
"DBI:Pg:database=asterisk:host=example.com:hostaddr=10.10.10.10:port=5432"
应该是:
"DBI:Pg:database=asterisk;host=example.com;hostaddr=10.10.10.10;port=5432"
只有前两个分隔符是冒号。其余的应该是分号。