Linux - PostgreSQL 适用于9.x 以上的 tar.gz 源码安装与理解 - 报错集锦

这里写目录标题

序言

PostgreSQL 9.x 以下版本笔者没用过,具体操作看参考链接,笔者就不记录重复操作了,主要记录容易出问题的地方。

主要内容

bash 配置文件个人理解

按照参考链接那样介绍,是在 ~/.bash_profile 文件配置 PGHOME 和 PGDATA 系统变量,但是每次重新登录命令行时,总要手动激活 ~/.bash_profile 内的配置,否则 psql 命令无法生效。

报错如下:

具体原因如下:

最后在网上查找资料发现,用图形界面登录时,系统会读取~/.bash_profile中的配置信息,所以环境变量可以生效。

但是用命令行登录,例如xshell,系统加载的是~/.bashrc 中的配置信息。

所以,我们把环境变量在~/.bashrc文件中,重新配置一次,问题解决,用命令行就不用每次执行 . .bash_profile命令了。

~/.bash_profile 修改为 ~/.bashrc 文件,然后source ~/.bashrc ,问题便可解决。

linux下.bash_profile中环境变量失效问题

关于初始化 PostgreSQL 数据库的理解

  1. --prefix= 指定安装目录路径

  2. 如果初始化数据库时,data目录没有指定,则会默认使用环境变量中的PGDATA

pg_hba.conf配置理解:

css 复制代码
TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 trust
host all postgres 0.0.0.0/0 reject
host all all 0.0.0.0/0 md5

以上配置的解释:

  • 允许任何本地用户无密码连接任何数据库。
  • 不允许Postgres用户从任何外部地址连接任何数据库。
  • 允许其他任何用户从外部地址通过密码连接任何数据库。

如果要配置 PostgreSQL 的远程连接,配置如下:

bash 复制代码
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5

修改 postgresql.conf 配置文件 (该配置是优化后的配置)

css 复制代码
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
port = 5432
max_connections = 20000			# (change requires restart)
superuser_reserved_connections = 100

修改一下listen_address使其监听整个网络

启动方法

正常情况下的启动命令:-D data路径可以不用指定

注意指定的是一个 .log 后缀的日志文件

bash 复制代码
pg_ctl start -l /usr/local/postgresql/log/pg_server.log

无法启动的请参考

PostgreSQL说无法启动服务器时该怎么办

检查服务器是否在PostgreSQL中运行

bash 复制代码
pg_ctl status

效果:

关闭 postgresql 数据库方法

bash 复制代码
pg_ctl stop

pg_ctl status 命令查看效果:


参考链接

1. Linux CentOS 7 安装PostgreSQL 9.5(源码编译)

2. PostgreSQL用户角色和权限管理

3. linux下启动数据库的时候,waiting for server to start...stopped waiting pg_ctl:could not start server

4. Mac下启动postgrsql提示another server might be running的解决

5. postgres提示pg_ctl: could not start server Examine the log output.

相关推荐
舒一笑14 小时前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
Johny_Zhao15 小时前
centos7安装部署openclaw
linux·人工智能·信息安全·云计算·yum源·系统运维·openclaw
haibindev15 小时前
在 Windows+WSL2 上部署 OpenClaw AI员工的实践与踩坑
linux·wsl2·openclaw
IvorySQL15 小时前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
NineData17 小时前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
IvorySQL21 小时前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
梦想很大很大2 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair2 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主2 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作