乐于分享
好东西不私藏

Ubuntu环境下载源码构建PostgreSQL

Ubuntu环境下载源码构建PostgreSQL

这里的系统环境是Ubuntu 22.04。下面是步骤:

1. 最新版本的源码地址 : https://ftp.postgresql.org/pub/latest/

2. 进入Ubuntu控制台 
 wget https://ftp.postgresql.org/pub/latest/postgresql-18.4.tar.gz
3. 安装依赖的工具
# 导入密钥wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -# 添加llvm18源echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main" | sudo tee /etc/apt/sources.list.d/llvm18.listsudo apt update# 完整依赖sudo apt install gcc make libreadline-dev zlib1g-dev flex bison libssl-dev llvm-18-dev clang-18 lld-18
4. 解压编译PostgreSQL
tar zxvf postgresql-18.4.tar.gzcd postgresql-18.4/# 带调试符号编译,插件开发专用./configure --prefix=/home/gauss/soft/pg18 CFLAGS="-g -O0" --with-llvmmake -j$(nproc)sudo make install
5. 规划数据目录
cd /home/gauss/soft/pg18mkdir datachmod 700 data# 使用gauss作为postgresql用户,使用data作为数据库目录$ tree -L 1.├── bin├── data├── include├── lib└── share
6. 初始化数据库
/home/gauss/soft/pg18/bin/initdb -D /home/gauss/soft/pg18/data --encoding=UTF8 --locale=C.UTF-8
7. 启动数据库
# 启动/home/gauss/soft/pg18/bin/pg_ctl start -D /home/gauss/soft/pg18/data -l /home/gauss/soft/pg18/log/pg.log# 查看状态/home/gauss/soft/pg18/bin/pg_ctl status -D /home/gauss/soft/pg18/data# 停止/home/gauss/soft/pg18/bin/pg_ctl stop -D /home/gauss/soft/pg18/data -m fast
8. 测试连接
默认只会创建postgres数据库,连接时需要指定数据库。
psql -d postgres# 进入后,可修改密码ALTER USER gauss WITH PASSWORD '123456';# 创建数据库 CREATE DATABASE gauss OWNER gauss;
9. 配置为系统服务
gauss@gauss-pc-win:~$ cat /etc/systemd/system/pg18.service[Unit]Description=PostgreSQL 18 (run as gauss)After=network.target[Service]Type=forkingUser=gaussGroup=gaussExecStart=/home/gauss/soft/pg18/bin/pg_ctl start -D /home/gauss/soft/pg18/data -l /home/gauss/soft/pg18/log/pg18.logExecStop=/home/gauss/soft/pg18/bin/pg_ctl stop -D /home/gauss/soft/pg18/data -m fastExecReload=/home/gauss/soft/pg18/bin/pg_ctl reload -D /home/gauss/soft/pg18/dataRestart=on-failureRestartSec=5LimitNOFILE=65535Environment=PATH=/home/gauss/soft/pg18/bin:$PATHEnvironment=LD_LIBRARY_PATH=/home/gauss/soft/pg18/lib:$LD_LIBRARY_PATHEnvironment=PGDATA=/home/gauss/soft/pg18/data[Install]WantedBy=multi-user.target# 启动服务sudo systemctl daemon-reloadsudo systemctl enable pg18sudo systemctl start pg18sudo systemctl status pg18
10.配置远程访问
默认是监听在127.0.0.1上,如果需要外部访问,需要修改配置文件
gauss@gauss-pc-win:~/soft/pg18/data$ vi postgresql.conf
11. DBaever访问

相关学习资料