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博客

相关推荐
.痞老板.几秒前
mysql初阶--数据库设计
数据库·mysql·oracle
Decay__1 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks2 小时前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__10 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
笃行35010 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
java_logo12 小时前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器
我是大猴子12 小时前
redis
数据库·redis·缓存
方便面不加香菜13 小时前
Docker Container -- 综合实战案例详解
运维·docker·容器
LongRunning14 小时前
【Linux】RK3568-OpenCV+YOLO(八)
linux·opencv·yolo
海洋之恒14 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·自动化·github