前面我们已经初始化搭建了一个基础的 AnolisOS 8.8 环境,下面我们需要在这个环境上部署我们的数据库服务 PostgreSQL。下面是完整的搭建过程。
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# rpm -ivh ./*.rpm --nodeps --force
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:glibc-all-langpacks-2.28-251.0.1.################################# [ 1%]
2:glibc-gconv-extra-2.28-251.0.1.an################################# [ 3%]
3:glibc-langpack-en-2.28-251.0.1.an################################# [ 4%]
4:glibc-common-2.28-251.0.1.an8.2 ################################# [ 6%]
5:glibc-2.28-251.0.1.an8.2 ################################# [ 7%]
6:libselinux-2.9-8.an8 ################################# [ 8%]
7:zlib-1.2.11-25.0.1.an8 ################################# [ 10%]
8:libgcc-8.5.0-20.0.3.an8 ################################# [ 11%]
9:libstdc++-8.5.0-20.0.3.an8 ################################# [ 13%]
10:xz-libs-5.4.4-2.an8 ################################# [ 14%]
11:libxml2-2.9.7-18.0.3.an8 ################################# [ 15%]
12:cmake-filesystem-3.26.5-1.0.2.an8################################# [ 17%]
13:openssl-1:1.1.1k-12.0.1.an8 ################################# [ 18%]
14:openssl-pkcs11-0.4.10-3.0.1.an8 ################################# [ 19%]
15:openssl-libs-1:1.1.1k-12.0.1.an8 ################################# [ 21%]
16:krb5-libs-1.18.2-26.0.2.an8 ################################# [ 22%]
17:zlib-devel-1.2.11-25.0.1.an8 ################################# [ 24%]
18:glibc-headers-2.28-251.0.1.an8.2 ################################# [ 25%]
19:glibc-devel-2.28-251.0.1.an8.2 ################################# [ 26%]
20:libxcrypt-devel-4.1.1-6.0.3.an8 ################################# [ 28%]
21:libgpg-error-devel-1.42-5.0.1.an8################################# [ 29%]
22:cmake-rpm-macros-3.26.5-1.0.2.an8################################# [ 31%]
23:libgcrypt-devel-1.8.5-7.0.1.an8_6################################# [ 32%]
24:libkadm5-1.18.2-26.0.2.an8 ################################# [ 33%]
25:opencryptoki-libs-3.22.0-3.an8 ################################# [ 35%]
26:openssl-ibmpkcs11-1.0.2-1.0.1.an8################################# [ 36%]
27:libxslt-1.1.32-6.0.1.an8 ################################# [ 38%]
28:xz-devel-5.4.4-2.an8 ################################# [ 39%]
29:libxml2-devel-2.9.7-18.0.3.an8 ################################# [ 40%]
30:libasan-8.5.0-20.0.3.an8 ################################# [ 42%]
31:libstdc++-devel-8.5.0-20.0.3.an8 ################################# [ 43%]
32:libubsan-8.5.0-20.0.3.an8 ################################# [ 44%]
33:cpp-8.5.0-20.0.3.an8 ################################# [ 46%]
34:isl-0.16.1-6.0.1.an8 ################################# [ 47%]
35:libgomp-8.5.0-20.0.3.an8 ################################# [ 49%]
36:gcc-8.5.0-20.0.3.an8 ################################# [ 50%]
37:libuv-1:1.42.0-1.an8 ################################# [ 51%]
38:m4-1.4.18-7.0.1.an8 ################################# [ 53%]
39:make-1:4.2.1-11.0.1.an8 ################################# [ 54%]
40:pcre2-utf16-10.32-3.0.1.an8_6 ################################# [ 56%]
41:pcre2-utf32-10.32-3.0.1.an8_6 ################################# [ 57%]
42:pcre2-devel-10.32-3.0.1.an8_6 ################################# [ 58%]
43:uuid-1.6.2-43.0.1.an8 ################################# [ 60%]
44:ncurses-base-6.1-10.20180224.0.1.################################# [ 61%]
45:ncurses-libs-6.1-10.20180224.0.1.################################# [ 63%]
46:cmake-data-3.26.5-1.0.2.an8 ################################# [ 64%]
47:cmake-3.26.5-1.0.2.an8 ################################# [ 65%]
48:ncurses-c++-libs-6.1-10.20180224.################################# [ 67%]
49:ncurses-devel-6.1-10.20180224.0.1################################# [ 68%]
50:readline-7.0-10.0.1.an8 ################################# [ 69%]
51:libverto-devel-0.3.2-2.an8 ################################# [ 71%]
52:libsepol-devel-2.9-3.0.1.an8 ################################# [ 72%]
53:libselinux-devel-2.9-8.an8 ################################# [ 74%]
54:libcom_err-devel-1.46.0-1.0.1.an8################################# [ 75%]
55:keyutils-libs-devel-1.5.10-9.an8 ################################# [ 76%]
56:krb5-devel-1.18.2-26.0.2.an8 ################################# [ 78%]
57:openssl-devel-1:1.1.1k-12.0.1.an8################################# [ 79%]
58:readline-devel-7.0-10.0.1.an8 ################################# [ 81%]
59:ncurses-6.1-10.20180224.0.1.an8 ################################# [ 82%]
60:uuid-devel-1.6.2-43.0.1.an8 ################################# [ 83%]
61:flex-2.6.4-9.an8 ################################# [ 85%]
62:gcc-c++-8.5.0-20.0.3.an8 ################################# [ 86%]
63:libxslt-devel-1.1.32-6.0.1.an8 ################################# [ 88%]
64:openssl-ibmpkcs11-doc-1.0.2-1.0.1################################# [ 89%]
65:openssl-pkcs11-doc-0.4.10-3.0.1.a################################# [ 90%]
66:openssl-perl-1:1.1.1k-12.0.1.an8 ################################# [ 92%]
67:python3-libxml2-2.9.7-18.0.3.an8 ################################# [ 93%]
68:xz-5.4.4-2.an8 ################################# [ 94%]
69:libselinux-utils-2.9-8.an8 ################################# [ 96%]
70:python3-libselinux-2.9-8.an8 ################################# [ 97%]
71:yum-utils-4.0.21-23.an8 ################################# [ 99%]
72:libfl-static-2.6.4-9.an8 ################################# [100%]
[root@localhost src]#
[root@localhost src]# tar -zxvf postgresql-14.7.tar.gz
[root@localhost src]# cd postgresql-14.7/
[root@localhost postgresql-14.7]# ./configure --prefix=/usr/local/pgsql-14
[root@localhost postgresql-14.7]# make world
[root@localhost postgresql-14.7]# make install-world
添加 postgres 用户
[root@localhost postgresql-14.7]# groupadd postgres
[root@localhost postgresql-14.7]# useradd -d /home/postgres -g postgres postgres
创建数据文件目录并修改其权限
[root@localhost postgresql-14.7]# mkdir -p /usr/local/pgsql-14/data
[root@localhost postgresql-14.7]# chown -R postgres:postgres /usr/local/pgsql-14/
配置环境变量
[root@localhost postgresql-14.7]# vi /etc/profile
export PGHOME=/usr/local/pgsql-14
export PGDATA=/usr/local/pgsql-14/data
export PATH="$PGHOME/bin:$PATH"
export MANPATH=$PGHOME/share/man:$MANPATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
[root@localhost postgresql-14.7]# source /etc/profile
说明:这里环境变量的配置也有很多比较喜欢在 postgres 用户的家目录下进行配置。
[root@localhost postgresql-14.7]# su - postgres
[postgres@localhost ~]$ vi .bash_profile
export PGHOME=/usr/local/pgsql-14
export PGDATA=/usr/local/pgsql-14/data
export PATH="$PGHOME/bin:$PATH"
export MANPATH=$PGHOME/share/man:$MANPATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
[postgres@localhost ~]$ source .bash_profile
初始化
[postgres@localhost ~]$ cd /usr/local/pgsql-14/data/
[postgres@localhost data]$ ../bin/initdb -D /usr/local/pgsql-14/data/
[postgres@localhost data]$ ../bin/pg_ctl -D /usr/local/pgsql-14/data/ -l logfile start
[postgres@localhost data]$ psql
postgres=# alter user postgres with password 'Anolis@2025';
说明:因为我们配置了 pg_hba.conf 是 trust 模式,所以这里不需要输入密码
修改配置文件
说明:pg_hba.conf 是控制访问的 postgresql.conf 是数据库自身的配置文件,这里我不详细讲数据库修改了哪些配置文件,在下一篇文章中我详细讲一下修改了哪些配置参数。
[postgres@localhost data]$ vi pg_hba.conf
[postgres@localhost data]$ vi postgresql.conf
创建归档目录
[postgres@localhost data]$ mkdir -p /usr/local/pgsql-14/data/wal_archive
重启数据库服务
[postgres@localhost data]$ ../bin/pg_ctl restart -D /usr/local/pgsql-14/data/
配置免密登录
[postgres@localhost data]$ cd ~
[postgres@localhost ~]$ vi .pgpass
127.0.0.1:5432:*:postgres:Anolis@2025
[postgres@localhost ~]$ chmod 0600 ./.pgpass
说明:这个文件的格式是 hostname:port:database:username:password
验证免密登录
[postgres@localhost ~]$ psql -h 127.0.0.1 -U postgres
[postgres@localhost ~]$ psql -h 192.168.30.140 -U postgres
Password for user postgres:
说明:这里 192.168.30.140 是我本机的实体 IP 地址,可以从上面的测试中看到,在 127.0.0.1 的情况下是不需要输入密码的,但是如果换成实体的 IP 是需要输入密码的,那么如果在 .pgpass 中也配置了本机实体的 IP,再次登录是否也需要密码呢?
备注:下一篇我将介绍关于数据库的配置文件 pg_hba.conf 和 postgresql.conf