当前位置: 首页 > news >正文

网站模板绑定域名中国交通建设集团有限公司英文名

网站模板绑定域名,中国交通建设集团有限公司英文名,优质聊城做网站费用,公司排名seo文章目录openEuler2403安装部署PostgreSQL17一、前言1.简介2.环境二、正文1.准备工作1)关闭selinux2)防火墙3)安装依赖软件包4)创建系统用户5)创建目录2.下载和安装3.pg_ctl管理服务4.systemctl服务管理5.配置6.测试示…

文章目录

  • openEuler2403安装部署PostgreSQL17
  • 一、前言
    • 1.简介
    • 2.环境
  • 二、正文
    • 1.准备工作
      • 1)关闭selinux
      • 2)防火墙
      • 3)安装依赖软件包
      • 4)创建系统用户
      • 5)创建目录
    • 2.下载和安装
    • 3.pg_ctl管理服务
    • 4.systemctl服务管理
    • 5.配置
    • 6.测试示例

openEuler2403安装部署PostgreSQL17

一、前言

1.简介

PostgreSQL 是一个基于 POSTGRES 4.2 版 的对象关系数据库管理系统 (ORDBMS), 由加州大学伯克利分校计算机科学系开发。

2.环境

  • LInux发行版: openEuler-24.03-LTS-SP2-x86_64-dvd.iso

  • PostgreSQL 版本:PostgreSQL 17

PostgreSQL 官网:https://www.postgresql.org

PostgreSQL 官网文档:https://www.postgresql.org/docs/

PostgreSQL 下载:https://www.postgresql.org/download/linux/redhat/

PostgreSQL YUM 源仓库网址:https://download.postgresql.org/pub/repos/yum/

openEuler常用操作指令:https://blog.csdn.net/u011424614/article/details/150942929

openEuler中LVM调整实现home与root分区空间平衡:https://blog.csdn.net/u011424614/article/details/150961763

openEuler安装部署JDK11:https://blog.csdn.net/u011424614/article/details/150961633

openEuler2403安装部署MySQL8:https://blog.csdn.net/u011424614/article/details/150966094

VirtualBox安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150725588

VMware安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150723134

DBeaver使用记录:https://blog.csdn.net/u011424614/article/details/150364887

二、正文

1.准备工作

1)关闭selinux

  • 修改 /etc/selinux/config
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

2)防火墙

  • 根据场景 2 选 1
# 场景一:测试环境
systemctl stop firewalld.service
systemctl disable firewalld.service# 场景二:生产环境,建议使用
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload
# 查看防火墙已开放端口
firewall-cmd --zone=public --list-ports

3)安装依赖软件包

dnf install bison tcl tcl-devel uuid-devel perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel libicu-devel openldap-devel python3-devel gcc-c++ openssl-devel cmake gcc* readline-devel docbook-dtds docbook-style-xsl openjade libxml2 libxml2-devel libxslt libxslt-devel xmlto fop perl-XML-SAX

4)创建系统用户

  • 创建系统用户组和系统用户
  • 不强制要求指定组ID和用户ID,默认情况下系统会自动分配未使用的最小ID(通常从1000开始)
  • 显式指定组ID和用户ID,可以确保多节点集群中用户/组ID一致,避免文件共享或同步时权限问题
# 创建名为 postgres 的系统用户组,指定组ID
groupadd -g 10001 postgres
# 创建系统用户 postgres 并加入同名组,指定用户ID
useradd -u 10001 -g postgres postgres
# 修改用户密码
passwd postgres

5)创建目录

  • 创建软件、数据和日志目录,及授权
# 创建软件、数据和日志目录
mkdir -p /opt/postgresql/{software,data,logs}
# 目录设置用户组和权限
chown postgres:postgres -R /opt/postgresql
chmod 700 -R /opt/postgresql/logs
  • 编辑 /etc/profile
vim /etc/profile

末尾追加内容:

export PGHOME=/opt/postgresql
export PGDATA=/opt/postgresql/data
export PATH=$PATH:$PGHOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
  • 立即生效环境变量
source /etc/profile

2.下载和安装

  • 选择版本:https://www.postgresql.org/ftp/source/

在这里插入图片描述

  • 下载链接右击,可拷贝下载链接
cd /opt/postgresql/software# 下载压缩包,如果 wget 无法下载或下载慢,可使用浏览器或迅雷下载
wget https://ftp.postgresql.org/pub/source/v17.6/postgresql-17.6.tar.gz# 解压
tar -zxvf postgresql-17.6.tar.gz
  • 编译和安装
# 预编译配置脚本
cd postgresql-17.6/
./configure --prefix=/opt/postgresql/ --with-openssl --with-pgport=5432 --with-tcl --with-perl --with-python --with-libxml --with-libxslt --with-ossp-uuid --with-pam --with-ldap
# 编译和安装PostgreSQL核心及所有附加模块(如扩展、文档、测试套件等)
# 适合需要完整功能的开发/生产环境
gmake world -j$(nproc)
gmake install-world
  • 初始化数据库
# 切换系统用户
su - postgres# 默认创建数据库:postgres 和超级管理员:postgres ,该用户无密码
/opt/postgresql/bin/initdb -D /opt/postgresql/data --encoding=UTF8 --lc-collate=zh_CN.UTF-8 --lc-ctype=zh_CN.UTF-8

3.pg_ctl管理服务

  • 建议使用 systemctl 服务管理
#启动
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l logfile start
#停止
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l logfile stop
#重启
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l logfile restart
#查看状态
/opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l logfile status

4.systemctl服务管理

  • 创建 systemctl 脚本
cat > /usr/lib/systemd/system/postgresql.service <<EOF
[Unit]
Description=The PostgreSQL Database Server
After=syslog.target
After=network.target[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/opt/postgresql/bin/pg_ctl start -D /opt/postgresql/data
ExecStop=/opt/postgresql/bin/pg_ctl stop
ExecReload=/opt/postgresql/bin/pg_ctl reload -D /opt/postgresql/data
TimeoutSec=300[Install]
WantedBy=multi-user.target
EOF
  • 常用指令
# 重新加载systemd单元文件
systemctl daemon-reload
# 系统重启自启动
systemctl enable postgresql
# 启动服务
systemctl start postgresql
# 停止服务
systemctl stop postgresql
# 重启服务
systemctl restart postgresql
# 查看服务状态
systemctl status postgresql

5.配置

  • 编辑 postgresql.conf
vim /opt/postgresql/data/postgresql.conf

文件内容:

# 监听所有网络接口(生产环境建议结合pg_hba.conf 限制IP段)
listen_addresses = '*'
# 服务监听端口(修改默认端口可规避自动化攻击)
port = 5432      
# 最大客户端连接数(需配合shared_buffers和work_mem调整)
max_connections = 1000# 基础日志收集
logging_collector = on  # 必须开启日志收集器 
log_directory = '/opt/postgresql/logs'  # 独立日志目录(避免与数据目录混用)
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'   # 精确到秒的日志命名(便于溯源)
log_rotation_age = 1d  # 每日轮转
log_rotation_size = 1GB  # 单个日志不超过1GB(平衡存储与可读性)
# SQL监控与性能分析
log_statement = 'ddl'  # 记录所有表结构变更(审计DDL操作)
log_duration = on  # 记录SQL执行耗时 
log_min_duration_statement = 1000  # 记录超过1秒的慢查询(单位:毫秒)
log_lock_waits = on  # 记录锁等待超时(deadlock_timeout默认1秒)
# 安全与审计增强
log_connections = on  # 记录所有连接尝试(安全审计)
log_disconnections = on  # 记录连接断开(追踪异常会话)
log_line_prefix = '%m [%p] %u %d %r '  # 格式:时间戳 [进程ID] 用户名 数据库名 客户端IP:端口
  • 编辑 pg_hba.conf
vim /opt/postgresql/data/pg_hba.conf

文件内容:

# 新增配置,允许所有远程主机连接
# 限制特定IP或网段,例如 0.0.0.0/0 改为:192.168.88.0/24
host    all             all             0.0.0.0/0               md5
  • 修改配置后,重启 PostgreSQL 服务
systemctl restart postgresql

6.测试示例

  • 创建数据库和用户
# 切换到 postgres 系统用户(PostgreSQL默认超级用户)
sudo -i -u postgres# 以 postgres 身份连接PostgreSQL默认数据库
psql postgres
# 备用,非必要执行,-U指定用户,-d指定数据库,-h指定服务器,-p指定端口
psql -U postgres -d postgres -h 127.0.0.1 -p 5432
# 修改 postgres 的用户密码
ALTER USER postgres WITH PASSWORD 'postgres';# 创建新用户并设置密码(生产环境建议使用更复杂的密码策略)
create user pguser with password 'pgsql@123456';# 创建UTF8编码的数据库,并指定 pguser 为所有者 
create database testdb with encoding='utf8' owner=pguser;# 授予 pguser 对 testdb 数据库的全部操作权限
grant all privileges on database testdb to pguser;# 备用,非必要执行,以 pguser 身份连接 testdb 数据库(-W参数强制密码提示)
# psql -U pguser -d testdb -W
  • 创建表、插入数据、查询数据
# 连接到测试数据库
\c testdb# 表权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO pguser;
# 序列权限 
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
GRANT USAGE ON SEQUENCES TO pguser;
# 函数权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public 
GRANT EXECUTE ON FUNCTIONS TO pguser;# 创建用户表(包含基础字段和约束)
CREATE TABLE users (user_id SERIAL PRIMARY KEY,username VARCHAR(50) UNIQUE NOT NULL,password VARCHAR(100) NOT NULL CHECK (length(password) >= 8),email VARCHAR(100) UNIQUE CHECK (email ~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,is_active BOOLEAN DEFAULT TRUE
) WITH (OIDS=FALSE);COMMENT ON TABLE users IS '系统用户表';
COMMENT ON COLUMN users.password  IS '加密存储,最小长度8位';# 插入测试数据
INSERT INTO users (username, password, email, is_active) VALUES('admin', '$2a$10$xJwLHXW4ZPCH/tm2wQYzU.7JQ5LbKb8JjZJfV8nJQYd9JKlXJZrG2', 'admin@test.com',  TRUE),('guest', 'Guest#1234', 'guest@example.org',  FALSE),('tester', 'Test@5678', NULL, TRUE);# 基础查询
SELECT * FROM users ORDER BY created_at DESC;# 条件查询(活跃用户)
SELECT user_id, username, email 
FROM users 
WHERE is_active = TRUE AND created_at > '2025-01-01';# 聚合查询
SELECT COUNT(*) AS total_users, SUM(CASE WHEN is_active THEN 1 ELSE 0 END) AS active_users,COUNT(email) AS users_with_email
FROM users;
http://www.dtcms.com/a/541901.html

相关文章:

  • BeautifulSoup 的页面中需要获取某个元素的 xpath 路径
  • 网站数字证书怎么做辽宁省建设工程注册中心网站
  • 网站开发 总结报告网站的版面设计
  • 网站策划素材网站备份流程
  • 最成功的个人网站新民电子网站建设哪家好
  • 十堰网站搜索优化价格网站建设流程新闻
  • 厦门网站制作公司创网网站后台管理系统
  • 汕头网站制作推荐小程序制作报价
  • 网站建设工作室 杭州网站建设方案论文1500
  • 6.1类的继承
  • 广东集团网站建设安徽网络seo
  • 爱站查询个人如何学习做网站
  • 怎么开发一个网站安徽省建筑工程信息平台
  • 石家庄网络建站中粮我买网是哪个公司做的网站
  • vue2弹出框组件demo
  • G-Star Landscape 3.0 更新,网页版同步上线!
  • 让进程永不掉线:Linux nohup命令的深度指南
  • 虚拟机上部署Web项目
  • 做类似淘宝的网站需多少资金销售类wordpress
  • wix做的网站在国内访问不了网站谁做的
  • 亚远景-ISO 26262与ISO 21434:汽车安全标准的双基石
  • 模板网站难做seo天津建站管理系统价格
  • ModbusRTU转CCLKIE网关:解决管廊老旧排水仪表接入三菱高速网络瓶颈
  • 女朋友做网站wordpress 在线浏览
  • 做电影网站为什么查封不了一键打开多个wordpress
  • 游戏盾是如何保障游戏安全稳定的?
  • html5网站引导页模板巨量算数关键词查询
  • 查询网站空间商怎么查看一个网站页面的seo优化情况
  • 【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 29 章 WIFI 实验-TCP 通信
  • 合肥建设工程招聘信息网站成都高校网站建设服务公司