PostgreSQL教程FG127-PG图形化客户端:pgAdmin4安装与核心操作
本文档风哥主要介绍PostgreSQL的图形化客户端pgAdmin4的安装与核心操作,包括安装配置、连接数据库、管理对象、执行SQL、备份恢复等内容,风哥教程参考PostgreSQL官方文档pgAdmin4内容,适合DBA和开发人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。
Part01-基础概念与理论知识
1.1 pgAdmin4概述
pgAdmin4是PostgreSQL的官方图形化管理工具,提供了直观的Web界面,用于管理PostgreSQL数据库。它是pgAdmin3的继任者,采用了现代的Web技术栈,提供了更丰富的功能和更好的用户体验。更多视频教程www.fgedu.net.cn
from oracle:www.itpux.com
- 图形化管理数据库对象
- 执行SQL查询和脚本
- 备份和恢复数据库
- 监控数据库性能
- 管理用户和权限
- 可视化查询执行计划
- 支持PostgreSQL所有版本
1.2 pgAdmin4特性
pgAdmin4的主要特性:
- Web界面:基于Web技术,支持浏览器访问
- 跨平台:支持Windows、macOS、Linux等多种操作系统
- 功能丰富:提供完整的数据库管理功能
- 响应式设计:适配不同屏幕尺寸
- 插件架构:支持扩展功能
- 多语言支持:支持多种语言界面
- 安全:支持HTTPS和用户认证
- 开源:免费开源软件
1.3 pgAdmin4架构
pgAdmin4的架构:
- 前端:基于React和Bootstrap的Web界面
- 后端:基于Python的Flask框架
- 数据库:使用SQLite存储配置和会话信息
- 通信:使用HTTP/HTTPS协议
- 连接:通过libpq库连接PostgreSQL数据库
Part02-生产环境规划与建议
2.1 pgAdmin4安装
pgAdmin4的安装方法:
# 基于RPM的系统(如Oracle Linux、RHEL、CentOS)
# 1. 添加pgAdmin4仓库
$ sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm
# 2. 安装pgAdmin4
$ sudo dnf install pgadmin4-web
# 3. 配置pgAdmin4
$ sudo /usr/pgadmin4/bin/setup-web.sh
# 4. 启动pgAdmin4服务
$ sudo systemctl enable httpd
$ sudo systemctl start httpd
# 5. 访问pgAdmin4
# 打开浏览器,访问 http://localfgedu.net.cn/pgadmin4
# 基于DEB的系统(如Ubuntu、Debian)
# 1. 添加pgAdmin4仓库
$ curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg –dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
$ sudo sh -c ‘echo “deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main” > /etc/apt/sources.list.d/pgadmin4.list && apt update’
# 2. 安装pgAdmin4
$ sudo apt install pgadmin4-web
# 3. 配置pgAdmin4
$ sudo /usr/pgadmin4/bin/setup-web.sh
# 4. 启动pgAdmin4服务
$ sudo systemctl enable apache2
$ sudo systemctl start apache2
# 5. 访问pgAdmin4
# 打开浏览器,访问 http://localfgedu.net.cn/pgadmin4
# 在Windows上安装pgAdmin4
# 1. 从pgAdmin官网下载Windows安装包
# 2. 双击安装包,按照向导进行安装
# 3. 安装完成后,启动pgAdmin4
# 4. 打开浏览器,访问 http://localfgedu.net.cn:5050
# 在macOS上安装pgAdmin4
# 1. 从pgAdmin官网下载macOS安装包
# 2. 双击安装包,按照向导进行安装
# 3. 安装完成后,启动pgAdmin4
# 4. 打开浏览器,访问 http://localfgedu.net.cn:5050
# 验证pgAdmin4安装
# 打开浏览器,访问pgAdmin4界面,输入用户名和密码登录
2.2 pgAdmin4配置
pgAdmin4的配置选项:
# Linux系统配置文件
$ cat /usr/pgadmin4/web/config.py
# Windows系统配置文件
C:\Program Files\pgAdmin 4\v6\web\config.py
# macOS系统配置文件
/Applications/pgAdmin 4.fgapp/Contents/Resources/web/config.py
# 主要配置选项
# 服务器监听地址
DEFAULT_SERVER = ‘127.0.0.1’
# 服务器监听端口
DEFAULT_SERVER_PORT = 5050
# 会话超时(秒)
SESSION_TIMEOUT = 3600
# 最大上传文件大小(MB)
MAX_UPLOAD_SIZE = 100
# 日志级别
LOG_LEVEL = ‘WARNING’
# 数据库连接超时(秒)
DEFAULT_CONNECTION_TIMEOUT = 10
# 配置示例:修改监听地址和端口
$ sudo vi /usr/pgadmin4/web/config.py
DEFAULT_SERVER = ‘0.0.0.0’ # 允许所有IP访问
DEFAULT_SERVER_PORT = 8080 # 修改端口为8080
# 重启服务
$ sudo systemctl restart httpd # 基于RPM的系统
$ sudo systemctl restart apache2 # 基于DEB的系统
2.3 pgAdmin4最佳实践
pgAdmin4的使用最佳实践:
- 安全配置:使用HTTPS,设置强密码,限制访问IP
- 性能优化:调整会话超时,限制最大上传文件大小
- 备份配置:定期备份pgAdmin4的配置和会话数据
- 用户管理:创建不同权限的用户,遵循最小权限原则
- 连接管理:使用连接组管理多个数据库连接
- 查询优化:使用查询工具的执行计划功能优化SQL
- 监控:使用pgAdmin4的监控功能监控数据库性能
- 定期更新:及时更新pgAdmin4到最新版本
Part03-生产环境项目实施方案
3.1 连接数据库
3.1.1 创建连接
# 1. 登录pgAdmin4
# 打开浏览器,访问pgAdmin4界面
# 输入用户名和密码登录
# 2. 创建服务器连接
# 点击左侧导航栏的”Servers”,右键选择”Create” -> “Server…”
# 3. 配置连接信息
# 在”General”选项卡中:
– Name: fgedu_server
– Description: PostgreSQL服务器
# 在”Connection”选项卡中:
– Host name/address: localfgedu.net.cn
– Port: 5432
– Maintenance fgedudb: pgsql – Username: pgsql – Password: postgres_password
– Save password: 勾选
# 在”Advanced”选项卡中:
– Connection timeout: 10
– SSL mode: Prefer
# 4. 保存连接
# 点击”Save”按钮
# 5. 测试连接
# 连接成功后,左侧导航栏会显示服务器和数据库
3.1.2 管理连接
# 1. 编辑连接
# 右键点击服务器,选择”Properties…”
# 修改连接信息后点击”Save”
# 2. 复制连接
# 右键点击服务器,选择”Duplicate…”
# 修改名称和连接信息后点击”Save”
# 3. 删除连接
# 右键点击服务器,选择”Remove Server…”
# 点击”Yes”确认
# 4. 连接组管理
# 右键点击”Servers”,选择”Create” -> “Server Group…”
# 输入组名称,点击”Save”
# 将服务器拖拽到组中
# 5. 连接状态
# 绿色图标表示连接正常
# 红色图标表示连接失败
# 灰色图标表示未连接
3.2 数据库对象管理
3.2.1 管理数据库
# 1. 创建数据库
# 右键点击”Databases”,选择”Create” -> “Database…”
# 在”General”选项卡中:
– Database: fgedudb
– Owner: pgsql – Template: template1
– Encoding: UTF8
# 点击”Save”
# 2. 编辑数据库
# 右键点击数据库,选择”Properties…”
# 修改数据库属性后点击”Save”
# 3. 删除数据库
# 右键点击数据库,选择”Delete/Drop…”
# 勾选”PostgreSQL”)
# 点击”Drop”
# 4. 查看数据库信息
# 点击数据库,在右侧面板中查看详细信息
# 包括大小、表空间、所有者等
3.2.2 管理表
# 1. 创建表
# 展开数据库 -> 展开”Schemas” -> 展开”public” -> 右键点击”Tables”,选择”Create” -> “Table…”
# 在”General”选项卡中:
– Name: fgedu_employees
# 在”Columns”选项卡中:
– 点击”+”添加列
– Name: id, Data type: serial, Primary key: 勾选
– Name: name, Data type: varchar(100), Not null: 勾选
– Name: age, Data type: integer, Not null: 勾选
– Name: department, Data type: varchar(100), Not null: 勾选
# 点击”Save”
# 2. 编辑表
# 右键点击表,选择”Properties…”
# 修改表属性或列信息后点击”Save”
# 3. 删除表
# 右键点击表,选择”Delete/Drop…”
# 点击”Drop”
# 4. 查看表数据
# 点击表,选择”View/Edit Data” -> “All Rows”
# 查看和编辑表数据
# 5. 查看表结构
# 点击表,在右侧面板中查看详细信息
# 包括列、索引、约束等
3.2.3 管理索引
# 1. 创建索引
# 展开表 -> 右键点击”Indexes”,选择”Create” -> “Index…”
# 在”General”选项卡中:
– Name: fgedu_employees_name_idx
# 在”Definition”选项卡中:
– Tablespace: pg_default
– Access method: btree
# 在”Columns”选项卡中:
– 点击”+”添加列
– Column: name, Sort order: ASC
# 点击”Save”
# 2. 编辑索引
# 右键点击索引,选择”Properties…”
# 修改索引属性后点击”Save”
# 3. 删除索引
# 右键点击索引,选择”Delete/Drop…”
# 点击”Drop”
# 4. 查看索引信息
# 点击索引,在右侧面板中查看详细信息
# 包括类型、列、表空间等
3.3 SQL执行
3.3.1 执行SQL查询
# 1. 打开查询工具
# 右键点击数据库,选择”Query Tool”
# 2. 编写SQL语句
SELECT * FROM fgedu_employees;
# 3. 执行查询
# 点击工具栏中的”Execute/Refresh”按钮(绿色三角形)
# 或按F5键
# 4. 查看执行结果
# 在下方的”Data Output”面板中查看结果
# 5. 查看执行计划
# 点击工具栏中的”Explain”按钮
# 在”Explain”面板中查看执行计划
# 6. 保存查询
# 点击工具栏中的”Save”按钮
# 选择保存位置和文件名
# 7. 打开查询文件
# 点击工具栏中的”Open File”按钮
# 选择查询文件
3.3.2 执行SQL脚本
# 1. 创建SQL脚本文件
$ vi script.sql
— 创建表
CREATE TABLE fgedu_IF NOT EXISTS fgedu_departments (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT
);
— 插入数据
INSERT INTO fgedu_departments (name, description) VALUES
(‘技术部’, ‘负责产品开发和技术支持’),
(‘市场部’, ‘负责市场推广和销售’),
(‘财务部’, ‘负责财务管理和会计’);
— 查询数据
SELECT * FROM fgedu_departments;
# 2. 在pgAdmin4中打开脚本文件
# 点击工具栏中的”Open File”按钮
# 选择script.sql文件
# 3. 执行脚本
# 点击工具栏中的”Execute/Refresh”按钮
# 或按F5键
# 4. 查看执行结果
# 在下方的”Data Output”面板中查看结果
3.4 备份与恢复
3.4.1 备份数据库
# 1. 打开备份工具
# 右键点击数据库,选择”Backup…”
# 2. 配置备份选项
# 在”General”选项卡中:
– Filename: /postgresql/backup/fgedudb_backup.sql
– Format: Plain
– Encoding: UTF8
# 在”Dump Options #1″选项卡中:
– Dump Format: Custom
– Compress: 9
# 在”Dump Options #2″选项卡中:
– Include CREATE DATABASE statement: 勾选
– Include DROP DATABASE statement: 勾选
# 3. 开始备份
# 点击”Backup”按钮
# 查看备份进度和结果
# 4. 验证备份文件
$ ls -l /postgresql/backup/fgedudb_backup.sql
-rw-r–r– 1 pgsql pgsql 12345 Apr 2 10:00 fgedudb_backup.sql
3.4.2 恢复数据库
# 1. 打开恢复工具
# 右键点击数据库,选择”Restore…”
# 2. 配置恢复选项
# 在”General”选项卡中:
– Filename: /postgresql/backup/fgedudb_backup.sql
– Format: Plain
– Encoding: UTF8
# 在”Restore Options #1″选项卡中:
– Clean before restore: 勾选
– Single transaction: 勾选
# 3. 开始恢复
# 点击”Restore”按钮
# 查看恢复进度和结果
# 4. 验证恢复结果
# 执行查询,确认数据已恢复
SELECT * FROM fgedu_employees;
SELECT * FROM fgedu_departments;
Part04-生产案例与实战讲解
4.1 pgAdmin4常见问题
在使用pgAdmin4时,可能会遇到以下问题:
4.1.1 安装问题
# 错误信息
Error: Unable to resolve dependency: Missing Dependency: python3-psycopg2 is required by pgadmin4-web-4.30-1.el8.noarch
# 原因:缺少Python依赖项
# 解决方案:
$ sudo dnf install python3-psycopg2
# 问题2:Web服务器配置失败
# 错误信息
Error: httpd service is not running
# 原因:Apache HTTP服务器未运行
# 解决方案:
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
4.1.2 连接问题
# 错误信息
Connection to server at “localfgedu.net.cn” (::1), port 5432 failed: connection timed out
# 原因:PostgreSQL服务器未运行或网络问题
# 解决方案:
# 检查PostgreSQL服务状态
$ sudo systemctl status postgresql
# 启动PostgreSQL服务
$ sudo systemctl start postgresql
# 问题2:认证失败
# 错误信息
Connection to server at “localfgedu.net.cn” (::1), port 5432 failed: FATAL: password authentication failed for fgedu “postgres”
# 原因:密码错误或认证方式不正确
# 解决方案:
# 重置密码
$ sudo -u pgsql psql -c “ALTER USER pgsql WITH PASSWORD ‘new_password’;”
# 检查pg_hba.conf文件
$ sudo vi /postgresql/data/pg_hba.conf
4.2 pgAdmin4问题解决方案
# 1. 安装问题
## 问题:依赖项冲突
## 解决方案:
– 检查系统上的Python版本
– 安装兼容的依赖项
– 使用虚拟环境
## 问题:权限不足
## 解决方案:
– 使用sudo权限执行安装命令
– 确保文件和目录权限正确
## 问题:端口被占用
## 解决方案:
– 检查端口使用情况
$ netstat -tuln | grep 80
– 修改pgAdmin4配置文件中的端口
# 2. 连接问题
## 问题:连接被拒绝
## 解决方案:
– 检查PostgreSQL服务器是否运行
– 检查防火墙设置
– 检查pg_hba.conf文件配置
## 问题:SSL错误
## 解决方案:
– 调整SSL模式设置
– 确保SSL证书有效
– 禁用SSL(仅在测试环境)
# 3. 性能问题
## 问题:pgAdmin4运行缓慢
## 解决方案:
– 增加服务器内存
– 调整pgAdmin4配置
– 减少同时打开的连接数
– 清理缓存和会话
## 问题:查询执行缓慢
## 解决方案:
– 优化SQL语句
– 使用索引
– 分析执行计划
– 调整PostgreSQL参数
# 4. 功能问题
## 问题:备份失败
## 解决方案:
– 检查文件权限
– 确保磁盘空间充足
– 检查数据库连接
## 问题:恢复失败
## 解决方案:
– 检查备份文件是否完整
– 确保目标数据库存在
– 检查用户权限
4.3 pgAdmin4实战案例
# 1. 环境准备
– PostgreSQL 15.0
– pgAdmin4 6.18
– Oracle Linux 9.3
# 2. 安装和配置pgAdmin4
# 2.1 安装pgAdmin4
$ sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm
$ sudo dnf install pgadmin4-web
$ sudo /usr/pgadmin4/bin/setup-web.sh
# 2.2 配置pgAdmin4
$ sudo vi /usr/pgadmin4/web/config.py
DEFAULT_SERVER = ‘0.0.0.0’
DEFAULT_SERVER_PORT = 8080
# 2.3 启动服务
$ sudo systemctl enable httpd
$ sudo systemctl start httpd
# 3. 连接数据库
# 3.1 创建服务器连接
– 登录pgAdmin4
– 创建服务器连接:
– Name: production_server
– Host: 192.168.1.100
– Port: 5432
– Username: pgsql – Password: secure_password
# 3.2 测试连接
– 连接成功后,展开服务器和数据库
# 4. 数据库管理
# 4.1 创建数据库
– 右键点击”Databases”,选择”Create” -> “Database…”
– 输入数据库名称:fgedu_production
– 点击”Save”
# 4.2 创建表
– 展开fgedu_production数据库
– 展开”Schemas” -> “public”
– 右键点击”Tables”,选择”Create” -> “Table…”
– 创建表:
– Name: fgedu_fgedus
– Columns:
– id: serial, PRIMARY KEY
– fgeduname: varchar(50), NOT NULL
– email: varchar(100), NOT NULL
– created_at: timestamp, DEFAULT CURRENT_TIMESTAMP
– 点击”Save”
# 4.3 插入数据
– 右键点击fgedu_fgedus表,选择”View/Edit Data” -> “All Rows”
– 点击”+”添加行
– 输入数据:
– fgeduname: admin
– email: admin@fgedu.net.cn
– 点击”Save”
# 5. 备份和恢复
# 5.1 备份数据库
– 右键点击fgedu_production数据库,选择”Backup…”
– 配置备份选项:
– Filename: /postgresql/backup/fgedu_production_backup.sql
– Format: Custom
– Compress: 9
– 点击”Backup”
# 5.2 恢复数据库
– 右键点击fgedu_production数据库,选择”Restore…”
– 配置恢复选项:
– Filename: /postgresql/backup/fgedu_production_backup.sql
– Format: Custom
– 点击”Restore”
# 6. 监控和维护
# 6.1 监控数据库性能
– 点击数据库,选择”Dashboard”
– 查看数据库活动、连接数、查询性能等
# 6.2 执行VACUUM
– 打开查询工具
– 执行:VACUUM ANALYZE;
# 6.3 检查数据库大小
– 打开查询工具
– 执行:SELECT pg_size_pretty(pg_fgedudb_size(‘fgedu_production’));
# 7. 安全管理
# 7.1 创建用户
– 右键点击”Login/Group Roles”,选择”Create” -> “Login/Group Role…”
– 输入用户名:fgedu_fgedu
– 设置密码
– 分配权限
– 点击”Save”
# 7.2 管理权限
– 右键点击表,选择”Properties…”
– 选择”Security”选项卡
– 分配权限给用户
– 点击”Save”
# 8. 自动化操作
# 8.1 创建维护计划
– 点击”Tools” -> “Maintenance Wizard”
– 选择数据库:fgedu_production
– 选择操作:VACUUM
– 配置计划
– 点击”Next” -> “Finish”
# 8.2 执行维护计划
– 点击”Tools” -> “Job Manager”
– 查看和执行维护计划
Part05-风哥经验总结与分享
5.1 pgAdmin4使用技巧
pgAdmin4使用技巧:
- 使用快捷键:F5执行查询,Ctrl+S保存查询,Ctrl+N新建查询
- 使用模板:创建常用查询模板,提高工作效率
- 使用过滤器:在对象浏览器中使用过滤器快速定位对象
- 使用收藏夹:将常用对象添加到收藏夹,方便快速访问
- 使用SQL编辑器:利用语法高亮、自动补全等功能
- 使用执行计划:分析查询执行计划,优化SQL语句
- 使用仪表板:监控数据库性能和活动
- 使用维护向导:自动执行数据库维护操作
- 使用导入/导出:快速导入和导出数据
- 使用SSH隧道:通过SSH隧道连接远程数据库
5.2 pgAdmin4性能优化
# 1. 系统优化
– 增加服务器内存:建议至少4GB内存
– 使用SSD存储:提高I/O性能
– 增加CPU核心数:提高并发处理能力
– 调整操作系统参数:如文件描述符限制
# 2. pgAdmin4配置优化
– 调整会话超时:SESSION_TIMEOUT = 3600
– 限制最大上传文件大小:MAX_UPLOAD_SIZE = 100
– 调整日志级别:LOG_LEVEL = ‘WARNING’
– 启用压缩:COMPRESSION_LEVEL = 9
# 3. 连接优化
– 使用连接池:减少连接建立开销
– 限制同时打开的连接数:避免资源耗尽
– 使用持久连接:减少连接建立和关闭的开销
– 合理设置连接超时:DEFAULT_CONNECTION_TIMEOUT = 10
# 4. 查询优化
– 使用参数化查询:避免SQL注入,提高性能
– 优化SQL语句:使用索引,避免全表扫描
– 限制结果集大小:使用LIMIT子句
– 批量操作:减少网络往返
# 5. 界面优化
– 减少同时打开的标签页:避免内存占用过高
– 关闭不需要的面板:如消息日志、输出等
– 使用最小化视图:减少渲染开销
– 定期清理缓存:提高响应速度
# 6. 网络优化
– 使用有线网络:避免无线延迟
– 减少网络拥塞:避免高峰期操作
– 使用HTTPS:虽然有开销,但提高安全性
– 调整网络缓冲区:提高传输效率
5.3 pgAdmin4资源与工具
pgAdmin4相关资源与工具:
- pgAdmin官网:https://www.pgadmin.org/
- pgAdmin文档:https://www.pgadmin.org/docs/
- pgAdmin源码:https://github.com/pgadmin-org/pgadmin4
- PostgreSQL官方文档:https://www.postgresql.org/docs/
- pgAdmin邮件列表:pgadmin-support@lists.postgresql.org
- Stack Overflow:搜索pgAdmin相关问题
- pgAdmin社区:https://www.pgadmin.org/community/
- pgAdmin插件:https://www.pgadmin.org/plugins/
- pgAdmin快捷键:https://www.pgadmin.org/docs/pgadmin4/latest/keyboard_shortcuts.html
- pgAdmin常见问题:https://www.pgadmin.org/docs/pgadmin4/latest/faq.html
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
