#!/bin/bash
yum install -y flex bison readline-devel zlib-devel openjade docbook-style-dessl
mkdir /usr/psql-10.1 -p && mkdir /data/postgres/db -p
useradd -s /bin/bash postgres -d /data/postgres/
chown postgres:postgres /data/postgres/ -R && chown postgres:postgres /usr/psql-10.1
cd /data/xjk/software
tar zxvf postgresql-10.1.tar.gz
chown postgres:postgres /data/xjk/software/postgres/ -R
su - postgres << !
cd /data/xjk/software/postgres/postgresql-10.1
./configure --prefix=/usr/psql-10.1
make
make install
cat >> /data/postgres/.bash_profile << EOF
PGDATA=/data/postgres/db
PATH=/usr/psql-10.1/bin:$PATH
MANPATH=/usr/psql-10.1/share/man
LD_LIBRARY_PATH=/usr/psql-10.1/lib
export LD_LIBRARY_PATH
export PGDATA
export MANPATH
export PATH
EOF
source ~/.bash_profile
initdb -D /data/postgres/db
pg_ctl -D /data/postgres/db -l logfile start
!
如果是debian系统,那么之前的依赖包名不一样,如下:
apt-get install libreadline6-dev
apt-get install zlib1g-dev
pg_ctl -D /data/postgres/db/ -l logfile start
listen_addresses = ‘localhost’
listen_addresses = ‘localhost’
alter user postgres with encrypted password ‘xjsd2022’;
create user customs_dev_admin with password ‘customs_dev2023’;
listen_addresses = ‘localhost’
CREATE DATABASE newdb;
GRANT CREATE ON DATABASE newdb TO newdba;
grant all privileges on database customs_dev to customs_dev_admin;
开机启动,以及systemctl
cd postgresql-15.0/contrib/start-scripts/
cp linux /etc/init.d/postgresql
cd /etc/init.d/
vi postgresql
修改以下部分
## EDIT FROM HERE
# Installation prefix
prefix="/data/postgres/base/14.0"
# Data directory
PGDATA="/data/postgres/pg5432/data"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/log"
再改下启动命令
case
1
i
n
s
t
a
r
t
)
e
c
h
o
−
n
"
S
t
a
r
t
i
n
g
P
o
s
t
g
r
e
S
Q
L
:
"
t
e
s
t
−
e
"
1 in start) echo -n "Starting PostgreSQL: " test -e "
1instart)echo−n"StartingPostgreSQL:"test−e"PG_OOM_ADJUST_FILE" && echo “
P
G
M
A
S
T
E
R
O
O
M
S
C
O
R
E
A
D
J
"
>
"
PG_MASTER_OOM_SCORE_ADJ" > "
PGMASTEROOMSCOREADJ">"PG_OOM_ADJUST_FILE”
su -
P
G
U
S
E
R
−
c
"
PGUSER -c "
PGUSER−c"PGCTL start -D ‘$PGDATA’ -s"
echo “ok”
;;
加执行权限 chmod +x postgresql
通过下面的命令添加到服务中
chkconfig --add postgresql
否则会报错
[root@localhost init.d]# systemctl stop postgresql
Failed to stop postgresql.service: Unit postgresql.service not loaded.
相应的,可通过下述命令删除
chkconfig --del postgresql
如果后面修改了postgresql文件,需要reload
systemctl daemon-reload
启动测试
systemctl start postgresql
systemctl status postgresql
ps -ef|grep postgres
关闭测试
systemctl stop postgresql
ps -ef|grep postgres