内容概述
环境准备
解压并配置编译参数
编译安装
创建用户
启动数据库
添加自启
1. 环境准备
1.1 软件包的获取
1.2 安装依赖
apt update
apt install -y build-essential libreadline-dev zlib1g-dev flex bison libssl-dev
2. 解压并配置编译参数
## 解压
tar -xvzf postgresql-15.6.tar.gz
## 创建软连接
mv postgresql-15.6 /usr/bin/
ln -s /usr/bin/postgresql-15.6/ /usr/bin/postgresql
## 创建数据目录
mkdir -p /data/postgres
## 编译
cd /usr/bin/postgresql
./configure --prefix=/usr/bin/postgresql
##--prefix 指定了安装路径
3. 编译安装
make -j$(nproc)
make install
4. 创建用户
PostgreSQL不允许root用户来下运行数据库,因此我们需要创建一个新的用户来运行
## 创建用户
useradd -m -s /bin/bash postgres
## 授权
vim /etc/sudoers
root ALL=(ALL:ALL) ALL
postgres ALL=(ALL:ALL) ALL
## 移除postgres密码 (可选)
passwd -d postgres
将postgresql的安装目录和数据目录都设为该用户
sudo mkdir -p /data/5432
sudo chown -R postgres:postgres /data/5432
5. 启动数据库
## 切换用户
su - postgres
## 添加环境变量
vim ~/.bashrc
export PATH=/usr/bin/postgresql/bin/:$PATH
export PGDATA=/data/5432
source ~/.bashrc
##初始化数据库
initdb -D /data/5432/
## 启动数据库
pg_ctl -D /data/5432/ -l logfile start
报错:
psql: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
解决:
添加环境变量
export LD_LIBRARY_PATH=/usr/bin/postgresql/lib:$LD_LIBRARY_PATH
source ~/.bashrc
6. 添加自启
cat /usr/lib/systemd/system/postgresql.service
[Unit]
Description=PostgreSQL 15.6 Database Server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/bin/postgresql/bin/pg_ctl -D /data/5432 -l /data/5432/logfile start
ExecStop=/usr/bin/postgresql/bin/pg_ctl -D /data/5432 -m fast stop
ExecReload=/usr/bin/postgresql/bin/pg_ctl -D /data/5432 reload
TimeoutSec=300
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
评论