Linux下安装postgresql记录

最重要的参考文档还是官网文档:https://www.postgresql.org/docs/18/installation.html

1、安装postgresql

参考文档:https://www.postgresql.org/download/linux/ubuntu/

在Ubuntu 24.04.2 LTS下多种方式安装软件,比较方便的是用apt。用apt有两种方式安装,一种是通过Ubuntu官方源直接安装(版本可能不是最新版本):

复制代码
apt install postgresql

另一种方式是通过postgresql自己的Apt Repository(可以安装最新版本):

复制代码
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt -y install postgresql-17

完成安装后,安装程序自动在Linux下创建postgres用户;自动初始化数据库,正常无需手动执行initdb初始化数据库;同时创建postgresql服务,默认已开机启动。

2、超级管理员登录

安装后的postgresql已启动,想访问数据库,需要身份认证。默认本地认证方式peer(这是postgresql默认的登录方式),可以用户名postgres登录,具体设置认证方式的配置文件是pg_hba.conf。文件位置在/etc/postgresql/版本/main/pg_hba.conf

复制代码
cat /etc/postgresql/16/mian/pg_hba.conf

# 16版本可以看到主要默认配置如下,可以看到本地认证是peer,
# 默认本地主机是scram-sha-256加密密码认证,老版本中是md5,因为不安全不再使用
# 默认非本地主机不能访问
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer
local   all             all                                     peer
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             ::1/128                 scram-sha-256

postgres是postgresql安装时生成的,密码我们并不知道。但是可以利用sudo -u来切换到切postgres用户,切换后无需密码即可通过psql命令行工具登陆系统,psql允许用户与数据库实例进行交互。

复制代码
sudo -u postgres psql

3、创建用户给应用使用

如果数据库无需要远程访问,可以直接创建用户,并给予创建数据库权限,就可以供后续应用初始化并使用数据库了。

复制代码
sudo -u postgres psql

# 创建用户并设置密码
create user testuser with password 'testpassword' CREATEDB;

# 创建数据库,并给testuser用户赋予此数据库所有权限
create database testdb;
grant all privileges on database testdb to testuser;

#列出数据库
\l

#退出psql
\q

如果需要通过远程服务器访问数据库,则需要修改pg_hba.conf,增加或修改如下:

复制代码
host    all             all             0.0.0.0/0               scram-sha-256
相关推荐
YOU OU12 小时前
Redis基础常识与命令
数据库·redis·缓存
Database_Cool_15 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森15 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_15 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白16 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面17 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧17 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈17 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy17 小时前
log4net 数据库存日志正确配置
数据库