Ubuntu PostgreSQL快速安装:APT包管理器简明指南

无论您是初学者还是寻求快速部署,本教程将引导您使用Ubuntu的APT包管理器轻松安装PostgreSQL。步骤清晰,操作简便,助您在几分钟内搭建起PostgreSQL开发或测试环境,即刻上手使用。

在Ubuntu系统上安装PostgreSQL数据库,主要有Docker容器安装、包管理器安装和源码编译安装三种方式。

每种安装方式的具体步骤和适用场景,帮助用户根据实际需求选择最适合的安装方案。

Docker容器安装PostgreSQL

适用场景:快速部署、隔离环境、便于迁移。

安装步骤

  1. 安装Docker
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
  1. 拉取PostgreSQL镜像
docker pull postgres:latest
  1. 创建数据存储目录
mkdir -p /home/postgres/data
chmod 777 -R /home/postgres/data  # 开发环境可简化为777,生产环境需调整所有权
  1. 运行容器
docker run -d \
  --name postgres \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_PASSWORD=mypassword \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 \
  -v /home/postgres/data:/var/lib/postgresql/data \
  postgres:latest
  1. 验证运行状态
docker ps -a

参数说明

参数 说明
-d 后台运行容器
--name 容器名称
-e 设置环境变量
-p 端口映射
-v 数据持久化挂载

包管理器安装PostgreSQL

适用场景:直接使用系统包管理,适合快速测试或开发环境。

安装步骤

  1. 更新软件包列表
sudo apt update
  1. 安装PostgreSQL
sudo apt install postgresql
  1. 检查服务状态
sudo systemctl status postgresql
  1. 切换到PostgreSQL用户并连接
sudo -i -u postgres
psql
  1. 创建数据库和用户(可选):

来此加密深度对接全球主流ACME渠道,包括Let's Encrypt、Google和ZeroSSL。这意味着可以根据实际需求,自由选择信任源。无论是传统的域名证书,还是有效期7天的短效IP证书,都能通过标准化的接口为快速签发,确保证书的兼容性与权威性。

CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

源码编译安装PostgreSQL

适用场景:需要自定义配置或使用特定版本的生产环境。

安装步骤

  1. 安装依赖包
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential libreadline-dev zlib1g-dev bison flex libpq-dev libicu-dev make
  1. 下载源码
mkdir -p /opt/pgsql
cd /opt/pgsql
wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.gz
tar -zxvf postgresql-16.2.tar.gz -C /opt/pgsql/
  1. 配置和编译
cd /opt/pgsql/postgresql-16.2
./configure --prefix=/opt/pgsql/pgsql-16.2
make && sudo make install
  1. 初始化数据库
sudo groupadd postgres
sudo useradd -g postgres postgres
sudo mkdir -p /opt/pgsql/pgsql-16.2/data
sudo chown postgres:postgres /opt/pgsql/pgsql-16.2/data
sudo -u postgres /opt/pgsql/pgsql-16.2/bin/initdb -D /opt/pgsql/pgsql-16.2/data
  1. 配置系统服务
sudo vim /etc/systemd/system/postgresql.service

添加以下内容:

[Unit]
Description=PostgreSQL RDBMS
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/opt/pgsql/pgsql-16.2/bin/pg_ctl start -D /opt/pgsql/pgsql-16.2/data -s -o "-p 5432"
ExecStop=/opt/pgsql/pgsql-16.2/bin/pg_ctl stop -D /opt/pgsql/pgsql-16.2/data -s -m fast
ExecReload=/opt/pgsql/pgsql-16.2/bin/pg_ctl reload -D /opt/pgsql/pgsql-16.2/data -s

[Install]
WantedBy=multi-user.target
  1. 启动服务
sudo systemctl daemon-reload
sudo systemctl enable postgresql
sudo systemctl start postgresql

常见问题及解决方案

  1. 端口冲突:修改映射端口(例如 -p 5433:5432),并更新连接时的端口号。
  2. 权限问题:确保数据目录权限正确,生产环境建议调整目录所有权为PostgreSQL容器内的用户ID(如999)。
  3. 连接失败:检查容器是否运行、PostgreSQL日志或防火墙规则(确保宿主机开放5432端口)。

生产环境建议

  1. 避免使用 chmod 777:生产环境中应调整目录所有权,而非开放全部权限。
  2. 定期备份数据:使用脚本或工具(如 pg_dump)定期备份数据库。
  3. 监控与日志:使用 docker logs 或第三方工具(如Prometheus + Grafana)监控PostgreSQL性能。
posted @ 2026-05-08 09:17  枫唐  阅读(27)  评论(0)    收藏  举报