解压
tar -zxvf
安装依赖
pkg_add icu4c bison python openpam libxml libxslt ossp-uuid readline gettext gettext-tools tcl lz4 zstd gmake llvm
配置
cd 解压的文件夹
./configure --prefix=/etc/postgresql/17 --exec-prefix=/etc/postgresql/17 --enable-nls='en_US zh_CN' --with-llvm --with-perl --with-python --with-tcl --with-icu --with-openssl --with-pam --with-bsd-auth --with-libxml --with-libxslt --with-readline --with-zlib --without-icu --with-ossp-uuid --with-lz4 --with-zstd --with-includes=/usr/local/include:/usr/src --with-libraries=/usr/local/lib:/usr/bin
编译安装
ln -s /usr/local/llvm17/bin/llvm-lto /usr/bin/llvm-lto
gmake -j32 && gmake install
cd contrib
gmake -j32 && gmake install
(contrib文件夹下也编译安装)
用户
adduser postgres
初始化
sudo -u postgres /etc/postgresql/17/bin/initdb -D /home/postgres/dbdata
服务
/etc/rc.d/postgresql
#!/bin/ksh
daemon="/etc/postgresql/17/bin/pg_ctl"
daemon_flags="-D /home/postgres/dbdata -l /home/postgres/logfile"
daemon_user="postgres"
daemon_timeout=300
. /etc/rc.d/rc.subr
rc_usercheck=NO
# rc_exec is used because
# pg_ctl: cannot be run as root
# Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
rc_check() {
rc_exec "${daemon} status ${daemon_flags}"
}
rc_reload() {
rc_exec "${daemon} reload ${daemon_flags}"
}
rc_start() {
rc_exec "${daemon} start ${daemon_flags}"
}
rc_stop() {
rc_exec "${daemon} stop ${daemon_flags} -m fast" || \
rc_exec "${daemon} stop ${daemon_flags} -m immediate"
}
rc_cmd $1
启动
rcctl enable postgresql
rcctl start postgresql
找不到服务是文件权限问题
chmod 555 /etc/rc.d/postgresql
优化
网络工具:
配置文件:
/home/postgres/dbdata/postgresql.conf
/home/postgres/