You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manjaro系统中pg_hba.conf位置及PostgreSQL本地连接问题

解决Manjaro 17.1.1上PostgreSQL 10.1本地连接失败的问题

兄弟,你这个问题我之前在Arch系系统上也碰到过,核心是PostgreSQL在Manjaro这类Arch衍生系统上安装后不会自动初始化数据库集群,这才导致你找不到pg_hba.conf、连不上服务的!我给你一步步捋清楚解决办法:

1. 先处理服务未启动的问题

你看到的错误提示:

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/run/postgresql/.s.PGSQL.5432"?

本质是PostgreSQL服务根本没启动,所以那个Unix套接字文件不存在。先检查服务状态:

sudo systemctl status postgresql

如果显示inactive,先停止可能异常的服务(如果有的话):

sudo systemctl stop postgresql

2. 初始化数据库集群(关键步骤!)

Arch系的PostgreSQL包安装后不会自动生成数据库集群,这就是你找不到pg_hba.conf的原因——只有初始化后才会在数据目录生成真实的配置文件。执行以下命令:

sudo -u postgres initdb -D /var/lib/postgresql/data

这个命令会以postgres用户身份初始化数据目录/var/lib/postgresql/data,完成后你就能在这个目录里找到pg_hba.conf、postgresql.conf这些核心配置文件了。

3. 配置本地连接权限

编辑pg_hba.conf文件来允许本地连接:

sudo nano /var/lib/postgresql/data/pg_hba.conf

找到本地连接的配置段,把对应的行修改为(根据你的需求选一种):

  • 允许本地无密码连接(适合测试):
    local   all             all                                     trust
    
  • 要求密码验证(更安全):
    local   all             all                                     md5
    

修改后按Ctrl+O保存,Ctrl+X退出编辑器。

4. 重启服务并验证连接

重启PostgreSQL服务让配置生效:

sudo systemctl restart postgresql

设置开机自启(可选但推荐):

sudo systemctl enable postgresql

现在尝试本地连接:

psql -U postgres

如果是trust配置的话直接就能进入PostgreSQL命令行;如果是md5配置,输入postgres用户的密码即可(初始化后默认没密码,你可以用ALTER USER postgres PASSWORD '你的密码';设置)。

为什么之前找不到pg_hba.conf?

你找到的/usr/share/postgresql/pg_hba.conf.sample只是包自带的模板文件,不是实际生效的配置。只有当你用initdb初始化数据库集群后,才会在数据目录生成可编辑的真实配置文件。

内容的提问来源于stack exchange,提问作者Piko Monde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:32:54