postgresql 数据库的安装,配置,备份,恢复

一、 安装 PostgreSQL

1. 更新包管理器

bash 复制代码
sudo apt update
sudo apt upgrade -y

2. 安装 PostgreSQL

bash 复制代码
# 安装 PostgreSQL 和附加工具
sudo apt install postgresql postgresql-contrib -y

3. 检查安装状态和版本

bash 复制代码
# 查看版本
psql --version

# 检查服务状态
sudo systemctl status postgresql

二、配置 PostgreSQL

1. 切换到 postgres 用户

bash 复制代码
sudo -i -u postgres

2. 修改 postgres 用户密码

bash 复制代码
# 进入 PostgreSQL 命令行
psql

# 在 psql 中修改密码
ALTER USER postgres WITH PASSWORD 'your_strong_password';

# 退出 psql
\q

3. 创建数据库用户和数据库

bash 复制代码
# 仍在 postgres 用户下
psql
bash 复制代码
-- 创建新用户(替换为您的用户名)
CREATE USER trader WITH PASSWORD 'trader_password';

-- 创建数据库
CREATE DATABASE xtrader OWNER trader;

-- 赋予所有权限
GRANT ALL PRIVILEGES ON DATABASE xtrader TO trader;

-- 退出
\q

三、配置远程访问(可选)

如果需要从其他机器连接 PostgreSQL:

1. 修改配置文件

bash 复制代码
# 编辑 postgresql.conf
sudo nano /etc/postgresql/*/main/postgresql.conf

找到并修改:

bash 复制代码
# 监听所有地址
listen_addresses = '*'

# 或指定 IP
listen_addresses = 'localhost,192.168.1.100'

2. 修改 pg_hba.conf 允许远程连接

bash 复制代码
sudo nano /etc/postgresql/*/main/pg_hba.conf

添加以下行(在文件末尾):

bash 复制代码
# 允许所有 IPv4 连接(使用密码认证)
host    all             all             0.0.0.0/0               md5

# 或只允许特定网段
host    all             all             192.168.1.0/24          md5

3. 重启 PostgreSQL

bash 复制代码
sudo systemctl restart postgresql

四、常用 PostgreSQL 命令

服务管理

bash 复制代码
# 启动服务
sudo systemctl start postgresql

# 停止服务
sudo systemctl stop postgresql

# 重启服务
sudo systemctl restart postgresql

# 查看状态
sudo systemctl status postgresql

# 设置开机自启
sudo systemctl enable postgresql

数据库操作

bash 复制代码
# 列出所有数据库
sudo -u postgres psql -l

# 连接到数据库
sudo -u postgres psql -d xtrader

# 或者使用新创建的用户
psql -h localhost -U trader -d xtrader

常用 psql 命令

bash 复制代码
-- 查看所有数据库
\l

-- 切换到数据库
\c database_name

-- 查看所有表
\dt

-- 查看表结构
\d table_name

-- 列出所有用户
\du

-- 退出
\q

备份,恢复

数据库备份

bash 复制代码
​​​​​​​pg_dump -h localhost -U postgres databasename > C:\databasename.bak

数据库恢复

bash 复制代码
psql -h localhost -U postgres -d databasename <  C:\databasename.bak
相关推荐
NaMM CHIN21 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
不瘦80斤不改名1 天前
深入浅出 MySQL(一):一文理清 SQL 核心规范与五大分类
数据库·sql·mysql
woniu_buhui_fei1 天前
MySQL知识整理二
数据库·mysql
Polar__Star1 天前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python
Lucifer三思而后行1 天前
zCloud 中 Oracle 实例状态未知问题记录
数据库·oracle
island13141 天前
最详细VMware Workstation 17 上安装 Ubuntu 系统
linux·数据库·ubuntu
卢傢蕊1 天前
MongoDB
数据库·mongodb
m0_743623921 天前
React 自定义 Hook 的命名规范与调用规则详解
jvm·数据库·python
古城小栈1 天前
GORM 操作 PostgreSQL 高级类型
数据库·postgresql
ward RINL1 天前
redis分页查询
数据库·redis·缓存