暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在国产统信UOS Server 20 (1060a) (kongzi)上安装PG15和PG16

DB宝 2023-12-04
1222

环境

 1docker rm -f lhruosv201060apg
2docker run -itd --name lhruosv201060apg -h lhruosv201060apg \
3  -v /sys/fs/cgroup:/sys/fs/cgroup \
4  --restart=always \
5  --privileged=true lhrbest/uos_server:v20-1060a-v3.0 \
6  /usr/sbin/init
7
8[root@lhrdb ~]# docker exec -it lhruosv201060apg bash
9[root@lhruosv201060apg /]$ 
10[root@lhruosv201060apg /]$ uosinfo 
11#################################################
12Release:  UOS Server release 20 (kongzi)
13Kernel :  3.10.0-1160.95.1.el7.x86_64
14Build  :  UOS Server 20 (1060a) 20230606 amd64
15#################################################
16[root@lhruosv201060apg /]$   

安装

 1dnf install -y cmake make gcc gcc-c++ perl readline readline-devel zlib zlib-devel \
2perl python36 tcl openssl ncurses-devel openldap pam perl-IPC-Run libicu-devel libarchive  libzstd
3
4
5
6yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
7
8
9
10sed -i 's/gpgcheck=1/gpgcheck=0/g'  /etc/yum.repos.d/pgdg-redhat-all.repo 
11sed -i 's/repo_gpgcheck = 1/repo_gpgcheck = 0/g'  /etc/yum.repos.d/pgdg-redhat-all.repo
12
13
14-- 国产OS,需要修改yum源的配置
15sudo sed -i 's/\$releasever/8/g' /etc/yum.repos.d/pgdg-redhat-all.repo
16
17
18-- 若是CentOS8和9,则需要禁用内置的PostgreSQL模块,否则会报错 All matches were filtered out by modular filtering for argument
19sudo dnf -qy module disable postgresql
20
21
22yum repolist enabled | grep pgdg
23
24
25-- 安装pg15和16版本
26yum install -y postgresql15 postgresql15-server postgresql15-contrib postgresql15-libs postgresql15-devel
27yum install -y postgresql16 postgresql16-server postgresql16-contrib postgresql16-libs postgresql16-devel
28
29
30
31# 最终一共需要5个rpm包
32[root@lhruosv201060apg ~]$  rpm -aq| grep postgres | grep 15
33postgresql15-server-15.5-2PGDG.rhel8.x86_64
34postgresql15-devel-15.5-2PGDG.rhel8.x86_64
35postgresql15-15.5-2PGDG.rhel8.x86_64
36postgresql15-contrib-15.5-2PGDG.rhel8.x86_64
37postgresql15-libs-15.5-2PGDG.rhel8.x86_64
38
39[root@lhruosv201060apg ~]$  rpm -aq| grep postgres | grep 16
40postgresql16-16.1-4PGDG.rhel8.x86_64
41postgresql16-libs-16.1-4PGDG.rhel8.x86_64
42postgresql16-server-16.1-4PGDG.rhel8.x86_64
43postgresql16-devel-16.1-4PGDG.rhel8.x86_64
44postgresql16-contrib-16.1-4PGDG.rhel8.x86_64

其它配置

以pg16为例:

  1-- 环境变量
2echo "export PATH=/usr/pgsql-16/bin:$PATH" >> /etc/profile
3
4
5locale -a | grep zh_CN
6
7
8
9/usr/pgsql-16/bin/postgresql-16-setup initdb
10
11-- 重新初始化中文 --locale=en_US.utf8
12su - postgres
13rm -rf /var/lib/pgsql/16/data/
14/usr/pgsql-16/bin/initdb  -D /var/lib/pgsql/16/data -E UTF8 --locale=zh_CN.UTF-8  -U postgres --data-checksums
15
16
17systemctl enable postgresql-16
18systemctl restart postgresql-16
19systemctl status postgresql-16
20
21
22
23-- 本地登陆
24su - postgres
25psql
26
27-- 安装插件
28create extension pageinspect;
29create extension pg_stat_statements;
30
31select * from pg_extension ;
32select * from pg_available_extensions order by name limit 2;
33
34-- 修改postgres密码
35alter user postgres with  password 'lhr'; 或 \password
36
37create user lhr with  password 'lhr' superuser; 
38
39
40select * from pg_tables;
41select version();
42
43
44
45-- 开放防火墙
46firewall-cmd --add-port=5432/tcp --permanent
47firewall-cmd --reload
48firewall-cmd --list-port
49
50
51
52
53systemctl status firewalld.service 
54systemctl stop firewalld.service 
55
56echo 'export LANG=en_US.UTF-8' >> /etc/profile
57
58
59sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
60setenforce 0
61
62
63
64-- 配置允许PG远程登录,注意版本:
65cat >> /var/lib/pgsql/16/data/postgresql.conf <<"EOF"
66listen_addresses = '*'
67port=5432
68unix_socket_directories='/var/lib/pgsql/16/data'
69logging_collector = on
70log_directory = 'pg_log'
71log_filename = 'postgresql-%a.log'
72log_truncate_on_rotation = on
73EOF
74
75cat  << EOF > /var/lib/pgsql/16/data/pg_hba.conf
76# TYPE  DATABASE    USER    ADDRESS       METHOD
77local     all       all                    trust
78host      all       all    ::1/128         trust
79host      all       all   127.0.0.1/32     trust
80host      all       all    0.0.0.0/0        md5
81host   replication  all    0.0.0.0/0        md5
82EOF
83
84systemctl restart postgresql-16
85systemctl status postgresql-16
86
87
88
89
90
91mkdir -p /home/postgres
92chown postgres.postgres /home/postgres -R
93sed -i 's|/var/lib/pgsql|/home/postgres|' /etc/passwd
94echo "lhr" |passwd --stdin postgres
95echo "postgres ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
96
97
98cat > /home/postgres/.bash_profile <<"EOF"
99export PGPORT=5432
100export PGHOME=/usr/pgsql-16
101export PGDATA=/var/lib/pgsql/16/data
102export PATH=$PGHOME/bin:$PATH
103export MANPATH=$PGHOME/share/man:$MANPATH
104export LANG=en_US.UTF-8
105export DATE='date +"%Y%m%d%H%M"'
106export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
107export PGHOST=$PGDATA
108export PGUSER=postgres
109export PGPASSWORD=lhr
110export PGDATABASE=postgres
111export PS1="[\u@\h \W]\$ "
112EOF
113
114
115chown postgres.postgres /home/postgres/.bash_profile
116
117
118systemctl restart postgresql-16
119systemctl status postgresql-16

参考

https://www.xmmup.com/dbbao67shiyongyumlaianzhuangpostgresql13-3shujuku.html

https://www.xmmup.com/postgresql-16shujukudegezhonganzhuangfangshihuizongyumbianyidockerdeng.html


文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论