Skip to content

PostgreSQL 数据库

PostgreSQL 是 EnderRealm 项目使用的数据库系统,用于存储各种业务数据,包括但不限于配置数据、用户信息等。

什么是数据库?

数据库是按照数据结构来组织、存储和管理数据的仓库。它可以:

  • 持久存储:数据保存在磁盘上,不会因为程序关闭而丢失
  • 高效查询:支持快速检索和过滤数据
  • 并发访问:多个程序可以同时访问数据库
  • 数据安全:支持备份、恢复、权限控制

什么是 SQL?

SQL(Structured Query Language)是用于管理关系数据库的标准语言。常用操作包括:

sql
-- 查询数据
SELECT * FROM users WHERE age > 18;

-- 插入数据
INSERT INTO users (name, age) VALUES ('张三', 25);

-- 更新数据
UPDATE users SET age = 26 WHERE name = '张三';

-- 删除数据
DELETE FROM users WHERE name = '张三';

什么是 PostgreSQL?

PostgreSQL 是一个功能强大的开源关系数据库管理系统,由加州大学伯克利分校开发。它的特点包括:

  • 开源免费:完全免费使用和修改
  • 功能强大:支持复杂查询、事务、触发器等
  • 标准兼容:高度兼容 SQL 标准
  • 可扩展:支持自定义数据类型、函数等
  • 高性能:支持索引、查询优化等

为什么选择 PostgreSQL?

PostgreSQL 是业界广泛使用的关系数据库,具有以下优点:

  • 可靠性:经过长期发展,非常稳定
  • 功能丰富:支持复杂查询、事务、JSON 等高级特性
  • 性能优秀:处理大量数据时表现良好
  • 开源免费:完全免费使用

安装 PostgreSQL

Windows

方法一:官方安装包(推荐)

  1. 访问 PostgreSQL 官网
  2. 下载安装包(推荐使用 EnterpriseDB 安装包)
  3. 运行安装包,按提示完成安装
  4. 重要:记住设置的超级用户(postgres)密码
  5. 默认端口:5432

方法二:使用包管理器

powershell
# 使用 winget
winget install PostgreSQL.PostgreSQL.16

# 使用 scoop
scoop install postgresql

# 使用 chocolatey
choco install postgresql

macOS

方法一:使用 Homebrew(推荐)

bash
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 PostgreSQL
brew install postgresql@16

# 启动服务
brew services start postgresql@16

方法二:官方安装包

  1. 访问 PostgreSQL 官网
  2. 下载安装包
  3. 运行安装包,按提示完成安装

方法三:使用 Postgres.app

  1. 访问 Postgres.app
  2. 下载并安装
  3. 启动应用即可

Linux

Ubuntu/Debian

bash
# 更新包列表
sudo apt update

# 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib

# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql

CentOS/RHEL/Fedora

bash
# CentOS/RHEL
sudo yum install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Fedora
sudo dnf install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

配置 PostgreSQL

修改密码

安装完成后,首先修改 postgres 用户的密码:

bash
# 切换到 postgres 用户
sudo -u postgres psql

# 修改密码
ALTER USER postgres WITH PASSWORD '你的密码';

# 退出
\q

创建数据库

EnderRealm 需要创建一个专用数据库:

bash
# 登录 PostgreSQL
sudo -u postgres psql

# 创建数据库
CREATE DATABASE enderrealm;

# 创建用户
CREATE USER enderrealm WITH PASSWORD '你的密码';

# 授权
GRANT ALL PRIVILEGES ON DATABASE enderrealm TO enderrealm;

# 退出
\q

初始化数据库

EnderRealm 项目提供了数据库初始化脚本:

bash
# 进入数据库目录
cd database

# 创建数据库(如果尚未创建)
psql -U postgres -f init_db.sql

# 初始化表结构
psql -U postgres -d enderrealm -f init_schema.sql

# 导入 i18n 数据
psql -U postgres -d enderrealm -f i18n.sql

验证安装

命令行验证

bash
# 查看 PostgreSQL 版本
psql --version

# 连接到数据库
psql -U postgres -d enderrealm

# 查看数据库列表
\l

# 查看表列表
\dt

# 退出
\q

使用图形工具

推荐使用以下图形化管理工具:

  • Navicat:功能强大的数据库管理工具,支持多种数据库(推荐)
  • pgAdmin:PostgreSQL 官方图形化管理工具(免费)
  • DBeaver:通用数据库管理工具(免费开源)
  • DataGrip:JetBrains 出品的数据库 IDE(付费)

常用 PostgreSQL 命令

bash
# 启动服务
sudo systemctl start postgresql

# 停止服务
sudo systemctl stop postgresql

# 重启服务
sudo systemctl restart postgresql

# 查看状态
sudo systemctl status postgresql

# 连接到数据库
psql -U username -d database_name

# 备份数据库
pg_dump -U username database_name > backup.sql

# 恢复数据库
psql -U username database_name < backup.sql

常见问题

Q: 忘记了 postgres 用户密码怎么办?

A: 可以通过修改 pg_hba.conf 文件重置密码:

  1. 找到 pg_hba.conf 文件(通常在 /etc/postgresql/16/main/)
  2. md5 改为 trust
  3. 重启 PostgreSQL 服务
  4. 登录并修改密码
  5. 恢复 pg_hba.conf 文件
  6. 再次重启服务

Q: 无法连接到数据库怎么办?

A: 检查以下几点:

  1. PostgreSQL 服务是否启动
  2. 端口是否正确(默认 5432)
  3. 防火墙是否允许连接
  4. 用户名和密码是否正确

Q: 如何查看数据库大小?

A: 使用以下 SQL 命令:

sql
SELECT pg_database.datname, 
       pg_size_pretty(pg_database_size(pg_database.datname)) AS size 
FROM pg_database;

推荐学习资源

下一步

PostgreSQL 安装配置完成后,让我们继续学习 IntelliJ IDEA