1.centos下載
https://www.postgresql.org/ftp/source/
2.源碼安裝
1.上傳源碼的下載文件放在opt目錄下面并解壓縮
mv postgresql-15.2.tar.gz /opt/
cd /opt/ && tar xf postgresql-15.2.tar.gz
2.創(chuàng)建用戶
useradd postgres
3.配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.安裝依賴包
yum install -y bison flex readline-devel zlib-deve1 zlib zlib-devel gcc openssl-devel
5.創(chuàng)建目錄修改授權(quán)
mkdir /postgre/postgresql -p
6.進(jìn)行編譯
cd /opt/postgresql-15.2 && ./configure --prefix=/postgre/postgresql --enable-debug --with-openssl
gmake world && gmake install-world
chown -R postgres. /postgre/postgresql
7.配置環(huán)境變量
vim /etc/profile
export PATH=/postgre/postgresql/bin:$PATH
export PGDATA=/postgre/postgresql/data
source /etc/profile
8.初始化并啟動(dòng)
su - postgres
initdb -D $PGDATA
pg_ctl -D $PGDATA start
之后可以用psql登錄數(shù)據(jù)庫(kù)
[postgres@pg04 ~]$ psql
psql (15.2)
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(3 rows)
也可以使用systemd進(jìn)行管理
先關(guān)閉postgre進(jìn)程
vim /usr/lib/systemd/system/postgresql-15.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGPORT=5432
Environment=PGDATA=/postgre/postgresql/data/
OOMScoreAdjust=-1000
ExecStart=/postgre/postgresql/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/postgre/postgresql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/postgre/postgresql/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target
然后執(zhí)行
[root@pg04 system]# systemctl daemon-reload
[root@pg04 system]# systemctl start postgresql-15.service
[root@pg04 system]# systemctl enable postgresql-15.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-15.service to /usr/lib/systemd/system/postgresql-15.service.
[root@pg04 system]# systemctl status postgresql-15.service
● postgresql-15.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-03-31 00:26:07 CST; 14s ago
Main PID: 22427 (postgres)
CGroup: /system.slice/postgresql-15.service
├─22427 /postgre/postgresql/bin/postgres -D /postgre/postgresql/data
├─22428 postgres: checkpointer
├─22429 postgres: background writer
├─22431 postgres: walwriter
├─22432 postgres: autovacuum launcher
└─22433 postgres: logical replication launcher
Mar 31 00:26:07 pg04 systemd[1]: Starting PostgreSQL database server...
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.890 CST [22427] LOG: starting PostgreSQL 15.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 ...-44), 64-bit
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.890 CST [22427] LOG: listening on IPv4 address "0.0.0.0", port 5555
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.890 CST [22427] LOG: listening on IPv6 address "::", port 5555
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.890 CST [22427] LOG: listening on Unix socket "/tmp/.s.PGSQL.5555"
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.892 CST [22430] LOG: database system was shut down at 2023-03-31 00:25:12 CST
Mar 31 00:26:07 pg04 pg_ctl[22425]: 2023-03-31 00:26:07.894 CST [22427] LOG: database system is ready to accept connections
Mar 31 00:26:07 pg04 systemd[1]: Started PostgreSQL database server.
Hint: Some lines were ellipsized, use -l to show in full.