Qt中连接PostgreSQL服务器失败(could not connect to server: 没有那个文件或目录)

StardustHao 2015-08-30 01:20:47
我在Qt中使用PostgreSQL数据库(QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");)
编译运行,运行时弹出“could not connect to server: 没有那个文件或目录
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
QPSQL: Unable to connect”
但是,我在shell中连接数据库是可以的,
我看了一下,我的.s.PGSQL.5432是在tmp目录中,所以可以正常连接;但是Qt默认连接的却是Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?(见图一),而我的/var/run/postgresql目录下是没有.s.PGSQL.5432,所以才会有图一的报错。
我觉得有两个方面可以解决该问题,一是修改Qt中的文件;二是修改PostgreSQL中的文件。
请问以下,如何解决?
(一)Qt中哪个文件里可以修改连接服务器的选项,使它accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"而不是on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
(二)如何使.s.PGSQL.5432文件在/var/run/postgresql目录下产生?
...全文
3922 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
新晋小菜鸟 2018-06-13
  • 打赏
  • 举报
回复
Centos7下在Qt中怎么才能链接到postgregis呀?
StardustHao 2015-09-24
  • 打赏
  • 举报
回复
1楼是正确的哈。 在~/.bashrc中设置环境变量export PGHOST=/tmp后,注销后再启动,Qt中就可以正常启动PostgreSQL服务器了。
StardustHao 2015-09-17
  • 打赏
  • 举报
回复
引用 1 楼 huguangshanse00 的回复:
(一)可以通过在用户环境变量文件如~/.bashrc中设置环境变量export PGHOST=/tmp 使数据库自动到PGHOST下去找相关文件 (二)修改.s.PGSQL.5432 产生目录路径可以通过修改postgresql.conf文件中参数unix_socket_directories进行指定,不过如果不是/tmp 仍需要指定环境变量PGHOST
如果我要在/var/run/postgresql目录下产生.s.PGSQL.5432文件,那么我需要这样设置环境变量吗(export PGHOST=/var/run/postgresql)? 我已经在postgresql.conf把#unix_socket_directories = '/tmp'改为#unix_socket_directories = '/var/run/postgresql'但是好像不起作用,运行qt链接数据库依然报错,是不是漏了什么步骤?
huguangshanse00 2015-09-12
  • 打赏
  • 举报
回复
(一)可以通过在用户环境变量文件如~/.bashrc中设置环境变量export PGHOST=/tmp 使数据库自动到PGHOST下去找相关文件 (二)修改.s.PGSQL.5432 产生目录路径可以通过修改postgresql.conf文件中参数unix_socket_directories进行指定,不过如果不是/tmp 仍需要指定环境变量PGHOST

954

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧