最近打算用一用PostgreSQL数据库,先在Linux(CentOS7.5)中试了试,编译过程如下(详见网站LNPP环境安装配置笔记):
1、安装依赖、创建postgres账号
yum install readline-devel pam-devel libxslt-devel
groupadd -r postgres
useradd -r -M -s /bin/nologin -g postgres -d /data/pgsql postgres
passwd postgres
2、下载
wget https://ftp.postgresql.org/pub/source/v11.1/postgresql-11.1.tar.bz2
3、解压、编译
tar xvf postgresql-11.1.tar.bz2
cd postgresql-11.1
./configure --prefix=/data/pgsql --datadir=/data/pgsql/data --with-system-tzdata=/usr/share/zoneinfo --enable-spinlocks --disable-thread-safety --without-gssapi --without-llvm --with-pam --without-perl --without-python --with-readline --with-openssl --with-systemd --without-tcl --with-libxml --with-libxslt --with-zlib --enable-nls='zh_CN'
make -j5
make install
4、初始化数据库
chown postgres:postgres /data/pgsql/data -R
sudo -u postgres /data/pgsql/bin/initdb -D /data/pgsql/data/11
5、生成配置文件
cat > /lib/systemd/system/postgresql.service << "EOF"
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=notify
User=postgres
Group=postgres
Environment=DATA_DIR=/data/pgsql/data/11
ExecStart=/data/pgsql/bin/postgres -D ${DATA_DIR}
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=300
OOMScoreAdjust=-1000
[Install]
WantedBy=multi-user.target
EOF
6、启动PostgreSQL并设置开机启动
systemctl start postgresql
systemctl enable postgresql