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
相关推荐
Elastic 中国社区官方博客2 小时前
从判断列表到训练好的 Learning to Rank( LTR )模型
大数据·数据库·人工智能·深度学习·elasticsearch·搜索引擎·全文检索
hutengyi2 小时前
保姆级JavaWeb项目创建、部署、连接数据库(tomcat)
数据库·tomcat·firefox
寰宇的行者2 小时前
深入理解 Django 异步视图中的 `sync_to_async` 与协程
数据库·django
草莓熊Lotso2 小时前
MySQL 索引特性与性能优化全解
android·运维·数据库·c++·mysql·性能优化
薛定谔的悦2 小时前
站控显示下级从控EMS的版本信息开发(设计多线程和TCP通讯)
linux·网络·数据库·网络协议·tcp/ip·ems
bcbobo21cn3 小时前
C#使用一维数组作为参数传递
开发语言·数据库·c#·一维数组
荒川之神3 小时前
Hive 拉链表实例
开发语言·数据库
ZzzZZzzzZZZzzzz…3 小时前
MySQL备份还原方法1---mysqldump
linux·运维·数据库·mysql·还原备份
麦聪聊数据3 小时前
企业数据流通与敏捷API交付实战(二):微服务取数与冗余CRUD
数据库·sql·低代码·微服务·restful