【已解决】Ubuntu18.04下使用安装PostgreSQL遇到psql: could not connect to server: No such file or directory

这篇博客详细记录了在Linux系统中通过源码安装PostgreSQL 13.2的过程,包括下载安装包、配置参数、安装依赖、创建用户、初始化数据库、配置监听地址和端口、允许远程连接等步骤。在解决无法通过sudo apt-get install安装及默认端口5432无法打开的问题后,最终成功启动了数据库服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装PostgreSQL的时候,使用 sudo apt-get install 方式安装时,一直会出现这样的错误,而且默认的5432端口也打不开。

psql: 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”?

按照网上提供的解决方法没有成功解决。于是我就卸载使用其他方式重装,参考link。安装方法如下:

1.官网上面下载包:

https://www.postgresql.org/ftp/source/

本文选择的是13.2版本。

2.解压文件

3.进入解压目录并配置参数

进入解压目录: cd postgresql-13.2
创建安装目录: sudo mkdir /opt/postgresql-13.2
配置安装参数: ./configure --prefix=/opt/postgresql-13.2
> 注:
--prefix 指定安装目录
如果缺少readline,zlib,会提示报错。
安装readline包: sudo apt-get install libreadline6-dev 
	安装zlib包: sudo apt-get install zlib1g.dev

4.编译并安装

   make & make install

5.创建用户组和用户,并设置密码

root不能执行pgsql的一些命令,因此要创建postgresql这个用户

sudo useradd -d /home/postgres -m postgres  #创建用户并为用户创建主目录,-m:自动建立用户的登入目录。
passwd postgres  #为用户postgre设置密码
> 注:创建用户时没有密码,登录时又提示输入密码,那就 sudo passwd 用户名,然后回车输入两遍密码就可以为新用户添加密码了

6.创建数据库库文件存储目录并给postgresql用户赋予权限

进入数据库安装目录: cd /opt/postgresql-13.2
创建data目录: sudo mkdir data
给postgresql用户赋予权限:sudo chown postgres.postgres data

7.切换用户

su postgres

8.添加环境变量

export POSTGRESQL_HOME=/opt/postgresql-13.2
export PGDATA=/opt/postgresql-13.2/data
export PATH=$PATH:$POSTGRESQL_HOME/bin:$PGDATA
#查看环境变量
echo $POSTGRESQL_HOME
echo $PGDATA
echo $PATH  

若环境变量出错,可执行
export PATH=.:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/postgresql-13.2/bin:/opt/postgresql-13.2/data

9.初始化数据库目录

初始化数据: initdb

10.配置监听地址和端口

进入data/postgresql.conf修改为如下配置:

listen_addresses = '*'
port = 5432

也就是将注释号"#“去掉,并把"localhost"改为”*"

11、允许远程主机连接

进入data/pg_hba.conf添加如下配置:

host all all 0.0.0.0/0    trust

12.启动数据库

$ pg_ctl -D /opt/postgresql-13.2/data -l logfile start

报错了,没有权限:

waiting for server to start..../bin/sh: 1: cannot create logfile: Permission denied
 stopped waiting
pg_ctl: could not start server
Examine the log output.

于是把-l删掉:

$ pg_ctl -D /opt/postgresql-13.2/data  start
waiting for server to start....2021-04-04 11:49:25.853 CST [25368] LOG:  starting PostgreSQL 13.2 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
2021-04-04 11:49:25.894 CST [25368] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2021-04-04 11:49:25.895 CST [25368] LOG:  listening on IPv6 address "::", port 5432
2021-04-04 11:49:25.898 CST [25368] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2021-04-04 11:49:25.907 CST [25369] LOG:  database system was shut down at 2021-04-04 11:42:26 CST
2021-04-04 11:49:25.911 CST [25368] LOG:  database system is ready to accept connections
 done
server started

这时候终于成功启动psql了,也成功打开5432端口了。

$ psql
psql (13.2)
Type "help" for help.

postgres=# 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值