Ubuntu中安装PostgreSQL步骤及常规操作指南

 更新时间:2025年09月18日 11:56:07   作者:行星008  
PostgreSQL是一款很受欢迎的开源关系型数据库管理系统(RDBMS),扩展性强,处理大量数据时效率很高,这篇文章主要介绍了Ubuntu中安装PostgreSQL步骤及常规操作的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、安装 PostgreSQL

最新版本安装(推荐)

# 添加官方源并安装
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql postgresql-contrib

安装特定版本(如 14)

sudo apt install postgresql-14 postgresql-client-14

二、基本服务管理

命令说明
sudo service postgresql start启动服务
sudo service postgresql stop停止服务
sudo service postgresql restart重启服务
sudo service postgresql status查看状态
sudo systemctl enable postgresql设置开机自启

三、连接数据库

# 切换到 postgres 系统用户
sudo -i -u postgres

# 连接默认数据库
psql  # 或指定数据库: psql mydb

# 直接连接(无需切换用户)
sudo -u postgres psql

四、常规数据库操作

1. 用户与权限管理

-- 创建用户
CREATE USER devuser WITH PASSWORD 'securepass';

-- 修改密码
ALTER USER devuser PASSWORD 'newpass';

-- 授予数据库权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO devuser;

-- 删除用户
DROP USER IF EXISTS olduser;

2. 数据库管理

-- 创建数据库
CREATE DATABASE mydb OWNER devuser ENCODING 'UTF8';

-- 列出所有数据库
\l

-- 切换数据库
\c mydb

-- 删除数据库
DROP DATABASE olddb;

3. 表操作

-- 创建表
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 查看所有表
\dt

-- 查看表结构
\d users

-- 删除表
DROP TABLE users;

4. 数据操作

-- 插入数据
INSERT INTO users (name, email) 
VALUES ('Alice', 'alice@example.com');

-- 查询数据
SELECT * FROM users WHERE name LIKE 'A%';

-- 更新数据
UPDATE users SET email = 'new@example.com' WHERE id = 1;

-- 删除数据
DELETE FROM users WHERE id = 1;

五、常用 psql 元命令

命令说明
\?查看帮助
\l列出数据库
\c dbname切换数据库
\dt列出表
\d table查看表结构
\du列出用户
\x切换扩展显示模式
\timing开启/关闭执行时间
\q退出 psql
\i filename.sql执行 SQL 文件
\e在编辑器中编辑命令
\conninfo显示连接信息

六、备份与恢复

1. 使用 pg_dump

# 备份单个数据库
sudo -u postgres pg_dump mydb > mydb_backup.sql

# 备份所有数据库
sudo -u postgres pg_dumpall > all_backup.sql

# 压缩备份
sudo -u postgres pg_dump mydb | gzip > mydb_backup.gz

2. 恢复数据库

# 恢复 SQL 备份
sudo -u postgres psql -d mydb -f mydb_backup.sql

# 恢复压缩备份
gunzip -c mydb_backup.gz | sudo -u postgres psql mydb

七、配置远程访问

  1. 修改配置文件:

    sudo nano /etc/postgresql/14/main/postgresql.conf
    

    取消注释并修改:

    listen_addresses = '*'
    
  2. 编辑访问规则:

    sudo nano /etc/postgresql/14/main/pg_hba.conf
    

    添加行:

    host    all             all             0.0.0.0/0               md5
    
  3. 重启服务:

    sudo service postgresql restart
    

八、性能监控

-- 查看活动连接
SELECT * FROM pg_stat_activity;

-- 查看锁信息
SELECT * FROM pg_locks;

-- 查看表大小
SELECT pg_size_pretty(pg_total_relation_size('users'));

-- 查看索引使用情况
SELECT * FROM pg_stat_user_indexes;

九、扩展管理

-- 安装扩展(如 PostGIS)
CREATE EXTENSION postgis;

-- 查看已安装扩展
\dx

-- 卸载扩展
DROP EXTENSION postgis;

十、日志管理

# 查看错误日志位置
sudo -u postgres psql -c "SHOW log_directory;"

# 常用日志配置 (/etc/postgresql/14/main/postgresql.conf)
log_destination = 'stderr'
logging_collector = on
log_line_prefix = '%m [%p] %q%u@%d '
log_statement = 'all'  # 记录所有SQL

十一、版本升级

# 安装新版本(如 15)
sudo apt install postgresql-15

# 停止服务
sudo service postgresql stop

# 升级数据
sudo pg_upgradecluster 14 main 15

# 删除旧版本(确认新版本正常后)
sudo pg_dropcluster 14 main

常用管理工具推荐

  1. pgAdmin (GUI):
    sudo apt install pgadmin4
    
  2. 命令行工具:
    sudo apt install postgresql-client-14
    

连接示例

# 本地连接
psql -U devuser -d mydb

# 远程连接
psql -h 192.168.1.10 -p 5432 -U devuser -d mydb

提示:生产环境建议:

  1. 定期备份 (cron + pg_dump)
  2. 启用 WAL 归档
  3. 配置定期 vacuum
  4. 使用连接池 (pgBouncer)

总结 

到此这篇关于Ubuntu中安装PostgreSQL步骤及常规操作指南的文章就介绍到这了,更多相关Ubuntu安装PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgreSQL如何设置数据库执行超时时间

    postgreSQL如何设置数据库执行超时时间

    本文我们将深入探讨PostgreSQL数据库中的一个关键设置SET statement_timeout,这个设置对于管理数据库性能和优化查询执行时间非常重要,让我们一起来了解它的工作原理以及如何有效地使用它
    2024-01-01
  • postgresql减少wal日志生成量的操作

    postgresql减少wal日志生成量的操作

    这篇文章主要介绍了postgresql减少wal日志生成量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL中实现自增的三种方式举例

    PostgreSQL中实现自增的三种方式举例

    很多小伙伴在把mysql数据库里面的表导入pgsql数据库的时候,会遇到新增数据的时候id不自增,这篇文章主要给大家介绍了关于PostgreSQL中实现自增的三种方式,需要的朋友可以参考下
    2024-02-02
  • postgresql实现对已有数据表分区处理的操作详解

    postgresql实现对已有数据表分区处理的操作详解

    这篇文章主要为大家详细介绍了postgresql实现对已有数据表分区处理的操作的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • postgresql 导出建表语句的命令操作

    postgresql 导出建表语句的命令操作

    这篇文章主要介绍了postgresql 导出建表语句的命令操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL教程(十四):数据库维护

    PostgreSQL教程(十四):数据库维护

    这篇文章主要介绍了PostgreSQL教程(十四):数据库维护,本文讲解了恢复磁盘空间、更新规划器统计、VACUUM和ANALYZE的示例、定期重建索引等内容,需要的朋友可以参考下
    2015-05-05
  • PostgreSQL使用IP无法连接的解决方法

    PostgreSQL使用IP无法连接的解决方法

    这篇文章主要介绍了PostgreSQL使用localhost可以连接/使用IP无法连接的问题解决,需要的朋友可以参考下
    2018-01-01
  • postgresql的jsonb数据查询和修改的方法

    postgresql的jsonb数据查询和修改的方法

    这篇文章主要介绍了postgresql的jsonb数据查询和修改的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • postgresql分页数据重复问题的深入理解

    postgresql分页数据重复问题的深入理解

    这篇文章主要给大家介绍了关于postgresql分页数据重复问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • PostgreSQL自定义函数并且调用方式

    PostgreSQL自定义函数并且调用方式

    这篇文章主要介绍了PostgreSQL如何自定义函数并且调用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论