在openEuler 22.03 LTS SP3上源码安装PostgreSQL 15

openEuler 22.03 LTS SP3安装过程请参考官方文档:安装指导

1 安装必要的依赖
#yum install -y readline-devel
2下载postgresql-15.0源码
$wget https://ftp.postgresql.org/pub/source/v15.0/postgresql-15.0.tar.gz
或提前下载postgresql-15.0.tar.gz程序包,sftp上传到/sda2/目录下
$ tar -xzvf postgresql-15.0.tar.gz
3配置(环境依赖检查)
$ cd postgresql-15.0/
# 进行环境依赖检查
$ ./configure
4编译安装
#使用4个并发编译
$make -j4
#编译完成安装postgresql15.0
#make install
5创建用户和用户组
# groupadd postgres
# useradd -g postgres postgres
# passwd postgres
更改用户 postgres 的密码 。
新的密码:*******
重新输入新的密码:*******
passwd:所有的身份验证令牌已经成功更新。
6初始化数据库
6.1 创建数据目录
# mkdir /sda2/pgsql/data
# chown postgres  /sda2/pgsql/data
6.2切换到postgres操作系统用户
# su - postgres
6.3初始化PostgreSQL数据库
#/usr/local/pgsql/bin/initdb -D /sda2/pgsql/data
# 此处使用绝对路径,也可用相对路径来操作。
# -D:database cluster的主目录
# -U:指定超级用户
# -W:指定用户密码
# -E:指定数据库字符编码
# 最简化的方式初始化数据库
/usr/local/pgsql/bin/initdb -D /sda2/pgsql/data
# --waldir:指定wal日志路径
/usr/local/pgsql/bin/initdb  -D /sda2/pgsql/data -U postgres -E utf8 --waldir=/sda2/pgsql/data/pgwal
pgsql-修改默认密码
#修改PGSQL数据库密码--(注意密码需要用单引号括起来,用户名不用)
ALTER USER postgres WITH PASSWORD '*******';
#提示以下内容表示修改成功
ALTER ROLE
6.4启动PostgreSQL数据库
#/usr/local/pgsql/bin/pg_ctl -D /sda2/pgsql/data -l logfile start
启动报错,没有权限 (若启动未遇到报错,请跳过此步骤)
[postgres@~ /]$  /usr/local/pgsql/bin/pg_ctl -D /sda2/pgsql/data -l logfile start
waiting for server to start..../bin/sh:行1: logfile: Permission denied
 stopped waiting
pg_ctl: could not start server
Examine the log output.
查询pgsql日志
cat /home/pgsql/logfile
2024-01-11 13:01:31.369 CST [89959] FATAL:  data directory "/sda2/pgsql/data" has invalid permissions
2024-01-11 13:01:31.369 CST [89959] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
2024-01-11 13:07:13.811 CST [90123] FATAL:  data directory "/sda2/pgsql/data" has invalid permissions
2024-01-11 13:07:13.811 CST [90123] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
根据日志提示发现pgsql数据文件目录权限不足
#su - root
#添加目录权限
#pgsql程序目录
sudo chown -R postgres:postgres /usr/local/pgsql
sudo chmod -R 755  /usr/local/pgsql/
#pgsql数据文件目录
sudo chown -R postgres:postgres /sda2/pgsql/data
sudo chmod -R 755  /sda2/pgsql/data
sudo chmod -R 700 /sda2/pgsql/data
#/sda2/pgsql/data需要赋予(0700)权限,设置之后,启动正常!
2024-01-11 13:07:13.811 CST [90123] FATAL:  data directory "/sda2/pgsql/data" has invalid permissions
2024-01-11 13:07:13.811 CST [90123] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
[postgres@ ~]$ /usr/local/pgsql/bin/pg_ctl -D /sda2/pgsql/data -l logfile start
waiting for server to start.... done
server started
6.5查看pgsql服务端口号
[postgres@ ~]$ lsof -i:5432
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 3713 postgres    5u  IPv6  38207      0t0  TCP localhost:postgres (LISTEN)
postgres 3713 postgres    6u  IPv4  38208      0t0  TCP localhost:postgres (LISTEN)
6.6使用psql连接pgsql数据库;
[postgres@ ~]$ /usr/local/pgsql/bin/psql
psql (15.0)
Type "help" for help.
postgres=# select datname from pg_database;
  datname  
-----------
 postgres
 template1
 template0
(3 rows)
#查询 PostgreSQL(pgsql)的运行状态
SELECT * FROM pg_stat_activity;
7配置防火墙 开启pgsql5432服务端口
#启动防火墙并让其自动启动:
# sudo  systemctl enable firewalld
检查防火墙运行状态
# sudo firewall-cmd --state
running
#开启5432端口
#firewall-cmd --zone=public --add-port=5432/tcp --permanent
success
#添加5432端口(方式2)
#iptables  -I  INPUT  -p  tcp  --dport  5432  -j  ACCEPT
#重启防火墙配置:
#firewall-cmd --reload
(systemctl restart iptables.service )
#查询服务端口开放情况
[root@ ~]# firewall-cmd   --list-all
5432/tcp
8配置PostgreSQL远程连接:
  # cd /sda2/pgsql/data

  # vi pg_hba.conf

在列表最后添加: host    all             all             0.0.0.0/0               md5

# "local" is for Unix domain socket connections only

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               md5
      #  vi postgresql.conf
#查看参数文件位置
show config_file;
#修改以下参数值:
shared_buffers=4GB    #默认128MB一般推荐为内存的四分之一,不超过总内存的二分之一;
max_parallel_workers=20  #CPU并行参数,默认设置
log_statement = 'ddl'     #仅记录对数据库表结构的修改;
log_min_duration_statement = 2000    #慢sql参数
————————————————
#重启pgsql数据库
/usr/local/pgsql/bin/pg_ctl -D /sda2/pgsql/data -l logfile restart
#重新加载pgsql配置参数;
SELECT pg_reload_conf();
#查询 PostgreSQL 数据库配置参数
SELECT name, setting FROM pg_settings;
在PC端测试连接PostgreSQL数据库(略)
9安装PostgreSQL后的操作系统配置 
9.1 以管理员的身份配置/etc/profile
在/etc/profile.d目录下新增postgresql.sh文件,内容如下
[root@~ profile.d]# cat postgresql.sh 
export PATH=$PATH:/usr/local/pgsql/bin
9.2设置开机自动启动PostgreSQL
(a)创建启动文件
在/usr/lib/systemd/system下创建文件postgresql.service
内容如下:
# vim postgresql.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
OOMScoreAdjust=-1000
Environment=PGDATA=/sda2/pgsql/data
Environment=PGPORT=5432
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -l ${PGDATA}/logfile -s -o "-p ${PGPORT}" -w -t 300 
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -l ${PGDATA}/logfile -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -l ${PGDATA}/logfile -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target
(b)设置开机自动启动
# chmod a+x postgresql.service 
# systemctl enable postgresql.service
# systemctl start postgresql.service

 10创建数据库;

create database database_name  encoding='UTF8';

11保存参数配置并重启openEuler

#reboot -n

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以通过访问以下链接来下载openEuler 22.03 LTS操作系统:https://repo.openeuler.org/openEuler-22.03-LTS-SP1/OS/x86_64/ 这个链接将带您进入openEuler的官方下载页面,您可以选择适合您系统的版本进行下载。 另外,根据引用中的信息,openEuler 22.03-LTS是基于5.10内核构建的,这将为您提供更好的操作系统性能和稳定性。希望这个信息对您有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在OpenEuler 22.03 LTS-SP1上下载yum源并安装tar命令](https://blog.csdn.net/m0_63428773/article/details/130177326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [openEuler22.03LTS操作系统用pip安装saltstack3003.1所需的文件包](https://download.csdn.net/download/forestqq/87339063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [国产操作系统安装openEuler-22.03-LTS](https://blog.csdn.net/WeiHao0240/article/details/126024754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值