1. Postgres 数据库介绍
PostgreSQL(又称 Postgres)是一种强大、开源的关系型数据库管理系统(RDBMS),它具备高度的可靠性、稳定性和可扩展性,主要特点如下:
- 开源:PostgreSQL 是基于开源许可证发布的,任何人都可以免费使用、修改和分发它。
- 关系型数据库:PostgreSQL 是一种关系型数据库,支持 SQL 查询语句,具有强大的数据处理能力。
- 可扩展性:PostgreSQL 支持多种插件扩展,可以满足各种不同规模和需求的应用场景。
- 支持复杂数据类型:除了传统的数据类型外,PostgreSQL 还支持数组、JSON、XML 等复杂数据类型。
- 事务支持:PostgreSQL 提供完整的 ACID 事务支持,确保数据的一致性和可靠性。
- 触发器和存储过程:支持触发器和存储过程,可以在数据库层面实现业务逻辑。
- 并发控制:具备强大的并发控制能力,能够处理大量并发访问请求。
- 安全性:提供强大的用户认证和权限管理能力,确保数据安全。
- 扩展性:可以轻松地通过扩展模块来增加额外的功能,如全文搜索、地理信息系统等。
PostgreSQL 官网:https://www.postgresql.org/
资料推荐
- 💡大模型中转API推荐
- ✨中转使用教程
2. 不同环境下的 Postgres 数据库安装
2.1 Windows 下 Postgres 安装
Windows/Mac 下支持使用可执行文件快速安装,安装后像普通软件一样启动 Postgres 即可。
下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads。
安装后可通过 pgAdmin 工具来连接 PostgreSQL 数据库。默认安装的 PostgreSQL 会开机自启,可以通过以下步骤关闭开机自启:
- 按下 win+r 打开运行对话框,输入 services.msc 并回车。
- 找到 postgres-x64-16,右击选择 属性,将启动方式修改为 手动。
- 可以右击选择 停止,关闭 postgres 服务。
Windows 下的启动与停止命令:
pg_ctl start -D "D:\Software\PostgreSQL\16\data"
pg_ctl stop -D "D:\Software\PostgreSQL\16\data"
- -D 参数告诉 pg_ctl 命令应该使用哪个目录中的数据文件和配置文件。
- 也可以写成 bat 批处理,快速实现启动+关闭。
启动 bat:
@echo off
set PG_PATH="D:\Software\PostgreSQL\16\bin"
set PG_DATA="D:\Software\PostgreSQL\16\data"echo Starting PostgreSQL...
%PG_PATH%\pg_ctl.exe start -D %PG_DATA%
echo PostgreSQL started.
停止 bat:
@echo off
set PG_PATH="D:\Software\PostgreSQL\16\bin"
set PG_DATA="D:\Software\PostgreSQL\16\data"echo Stoping PostgreSQL...
%PG_PATH%\pg_ctl.exe stop -D %PG_DATA%
echo PostgreSQL stoped.
2.2 Ubuntu 下 Postgres 安装
对于 Debian 的系统(如 Ubuntu),可以使用如下命令:
sudo apt update
sudo apt install postgresql postgresql-contrib
检测 PostgreSQL 是否启动:
sudo systemctl status postgresql
通过以下两个命令启动或者停止 PostgreSQL 服务:
sudo systemctl start postgresql
sudo systemctl stop postgresql
安装完成后,可以通过 postgresql 提供命令工具 psql 连接到 PostgreSQL 数据库,亦或者使用 pgAdmin 可视化界面进行连接:
psql -U postgres -h localhost -W
也可以通过切换到 postgres 用户直接运行 psql 命令:
sudo -i -u postgres
psql
在 psql 中修改 postgres 密码:
\password postgres
如果无法通过 psql -U postgres 进行登录,则大概率是 postgresql 仅开启了本地登录,可以通过编辑 pg_hba.conf 修改配置:
sudo vim /etc/postgresql/<版本号>/main/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
PostgreSQL 中常见的身份验证方法如下:
- peer:仅适用于本地连接。客户端必须作为相同的操作系统用户连接。例如,如果你以 postgres 用户登录操作系统,那么连接到数据库时也必须以 postgres 用户身份。
- md5:使用MD5哈希进行密码验证。客户端必须提供正确的密码,密码在传输过程中会被加密。
- password:以明文方式传输密码进行验证。不推荐使用,因为密码在网络上以明文形式传输,安全性较低。
- trust:不需要密码,直接允许连接。不推荐在生产环境中使用,因为安全性较低。
2.3 Docker 快捷安装 PostgreSQL
Docker 中安装 PostgreSQL 非常简单,官方配置了镜像支持一件安装。
首先,从 Docker Hub 上拉去 PostgreSQL 的官方镜像:
docker pull postgres
然后运行 PostgreSQL 容器:
docker run --name postgres-dev -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres
停止与开启 PostgreSQL 容器:
docker start postgres-dev
docker stop postgres-dev
Docker 删除镜像与删除容器命令:
docker rmi <镜像id或名称>
docker rm <容器id或名称>