Linux系统部署Postgres数据库(ubuntu22.04)

步骤 1: 更新系统

首先,确保你的系统是最新的。打开终端并运行以下命令:

复制代码
sudo apt update
sudo apt upgrade

步骤 2: 安装运行 PostgreSQL

在Ubuntu 22.04中,你可以通过APT包管理器安装PostgreSQL。运行以下命令来安装最新版本的PostgreSQL:

复制代码
sudo apt install postgresql postgresql-contrib
复制代码
查看版本
复制代码
sudo -u postgres psql -c "SELECT version();"

:q退出

查看运行状态

复制代码
sudo service postgresql status;

安装完成后,PostgreSQL服务默认启动,如果没有启动可以使用如下命令启动:

sudo systemctl start postgresql

设置PostgreSQL服务在系统启动时自动启动:

复制代码
systemctl enable postgresql

步骤 3: 配置远程访问

如果你需要从远程客户端访问PostgreSQL数据库,你需要修改PostgreSQL的配置文件以允许远程连接。编辑postgresql.conf文件:

复制代码
vim /etc/postgresql/14/main/postgresql.conf

找到第60行并修改以下行:

#listen_addresses = 'localhost' # 将此行取消注释并修改为:

listen_addresses = '*' # 允许所有地址连接或指定一个IP地址,例如 '192.168.1.100'

然后,编辑pg_hba.conf文件以允许密码认证的远程连接:

复制代码
vim /etc/postgresql/14/main/pg_hba.conf 

文件最后添加以下行以允许远程连接:

复制代码
host all all 0.0.0.0/0 md5

重新加载PostgreSQL配置:

复制代码
sudo systemctl reload postgresql;
sudo service postgresql restart;

步骤 4: 创建数据库和用户(可选)

PostgreSQL在Ubuntu中默认使用postgres用户运行。为了安全起见,你应该切换到这个用户来进行后续操作:

复制代码
sudo -i -u postgres

postgres用户下,你可以创建数据库和用户。首先,进入PostgreSQL命令行界面:

复制代码
psql

然后,创建一个新的数据库和用户。例如,创建一个名为mydatabase的数据库和一个名为myuser的用户:

复制代码
CREATE DATABASE postgresdb1;
CREATE USER postgres1 WITH ENCRYPTED PASSWORD 'postgres1';
ALTER ROLE postgres1 SET client_encoding TO 'utf8';
ALTER ROLE postgres1 SET default_transaction_isolation TO 'read committed';
ALTER ROLE postgres1 SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE postgresdb1 TO postgres1;
ALTER USER postgres1 WITH SUPERUSER;

完成数据库和用户的创建后,你可以通过以下命令退出psql和postgres用户:

退出 postgres 用户

复制代码
exit

步骤 5: 测试连接

你可以使用psql命令从远程客户端测试连接:

复制代码
psql -h 127.0.0.1 -U postgres1 -d postgresdb1 -W

# 根据实际情况替换数据库连接参数。系统会提示你输入密码。

也可通过pgadmin或者navicat连接

参考:

【ubuntu22.04安装配置PostgreSQL】_ubuntu安装postgresql-CSDN博客

相关推荐
Better Bench6 小时前
WSL2 Ubuntu 中 Claude CLI “command not found” 故障排查与修复
linux·ubuntu·claude·wsl·claudecode
ShiXZ2136 小时前
Redis 常用指令全集:redis-cli 实战速查手册
数据库·redis·缓存
晓子文集7 小时前
Tushare接口文档:期货日线行情(fut_daily)
大数据·数据库·金融数据·量化投资·tushare
实心儿儿7 小时前
Linux —— 进程间关系和守护进程
linux·运维·服务器
FII工业富联科技服务7 小时前
工业设备运维如何Agentic化?拆解Factory Brain的设备运维架构
大数据·运维·人工智能·架构·制造
WA内核拾荒者7 小时前
WhatsApp 账号异常检测的自动化告警系统设计
数据库·python·自动化
Dawn-bit8 小时前
Linux磁盘管理详解
linux·运维·服务器·计算机网络·云计算
RisunJan9 小时前
Linux命令-sftp(SSH 文件传输协议客户端)
linux·运维
极客先躯10 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
龙仔72511 小时前
人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
linux·数据库·笔记·备份·人大金仓