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

Postgresql部署及简单操作

目录

1、介绍

2、什么是PostgreSQL

3、PostgreSQL 的特点

4、数据库定为

5、环境准备 

6、编译安装

6.1 安装依赖包

6.2 下载安装包

6.3 创建用户

6.4 创建 postgresql数据目录并授权

 6.5 上传压缩包并解压

6.6 编译postgresql源码 

6.7 配置环境变量

6.8 初始化数据库

5.9  配置文件修改

6.10 配置服务

 6.11 启动服务

 7、 数据库创建及使用

7.1 在默认配置条件下,本机访问PostgreSQL

7.2 创建数据库新用户如qztest 

7.3 创建用户数据库,如qztestdb

 7.4 将qztestdb数据库的所有权限都赋予qztest

7.5 使用命令 \q 退出psql

7.6 以qztestdb的身份连接数据库qztestdb

7.7 创建表、索引、并插入数据

8、 开启远程访问

8.1 编辑配置文件

8.2 重启数据库服务

8.3 此后即可从其它机器上登录,例如用Navicat for PostgreSQL


1、介绍

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

2、什么是PostgreSQL

PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。

PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。

PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。

3、PostgreSQL 的特点

PostgreSQL可在所有主要操作系统(即Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows等)上运行。

PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。

PostgreSQL支持SQL的许多功能,例如复杂SQL查询,SQL子选择,外键,触发器,视图,事务,多进程并发控制(MVCC),流式复制(9.0),热备(9.0))。

在PostgreSQL中,表可以设置为从“父”表继承其特征。

可以安装多个扩展以向PostgreSQL添加附加功能。

4、数据库定为

5、环境准备 

操作系统

centos

CPU

4核

内存

16G

Postgresql版本

postgresql-11.4

6、编译安装

6.1 安装依赖包

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

6.2 下载安装包

wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz

6.3 创建用户

#查看用户是否存在
id postgres#添加用户组及用户
groupadd postgres
useradd -g postgres  postgres#再次查看可以查看对应的uid gid 
id postgres

6.4 创建 postgresql数据目录并授权

选择对应的磁盘空间较大的盘创建数据目录

mkdir -p /pg/postgresql/data
chown -R postgres:postgres /pg

 6.5 上传压缩包并解压

rz filename

#解压
tar -zxvf postgresql-11.4.tar.gz

6.6 编译postgresql源码 

#进入postgresql解压目录
cd /pg/postgresql-11.4#编译 指定安装目录
./configure --prefix=/pg/postgresql

PostgreSQL配置脚本选项

#安装
make && make install

 

编译后结果如下

 至此,postgresql安装完成

6.7 配置环境变量

# 切换到postgres用户
su - postgres# 编辑postgres用户环境变量
vim .bash_profile# 添加如下内容
export PGHOME=/pg/postgresql
export PGDATA=/pg/postgresql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin # 使环境变量生效
source .bash_profile

6.8 初始化数据库

initdb

此时,postgresql数据目录下已经生成对应的文件。

#进入postgresql目录
cd /pg/postgresql/data
#查看
ll -h

 

5.9  配置文件修改

修改数据目录下的postgresql.conf  及 pg_hba.conf文件

postgresql.conf   配置PostgreSQL数据库服务器的相应的参数。

pg_hba.conf        配置对数据库的访问权限

初期测试使用时,可以简单修改部分配置,其他值使用默认值

修改 postgresql.conf

vim postgresql.conf
修改 listen_addresses 为 * ,代表所有主机皆可访问
listen_addresses = '*' 

修改 pg_hba.conf(允许任意用户从任意机器上以密码方式访问数据库)

vim pg_hba.conf
添加如下记录
host    all     all             0.0.0.0/0            trust
host    all     all             127.0.0.1/32         trust

6.10 配置服务

如需配置为服务启动方式,可以按照如下步骤操作

切换至管理员用户root
# 进入postgresql源码目录
cd /pg/postgresql-11.4/contrib/start-scripts# 此目录下有各系统的启动目录,需先将其添加执行权限
chmod +x  linux # 将启动服务拷贝至启动服务下
cp linux  /etc/init.d/postgresql

 

因启动服务命令里配置上了默认安装路径目录及数据目录,如与默认路径不一致,需手动调整

vim  /etc/init.d/postgresql修改 prefix及PGDATA 路径prefix=/pg/postgresql
PGDATA="/pg/postgresql/data"

 

 6.11 启动服务

a)  通过服务启动postgresql
/etc/init.d/postgresql  startb)  通过服务关闭postgresql
/etc/init.d/postgresql  stop

c)  通过pg_ctl 启动
#  将postgresql安装路径bin目录下的命令赋权给postgres用户
cd  /pg/postgresql/bin
chown -R  postgres:postgres  .# 切换至postgres用户启动服务su - postgres# 启动服务
pg_ctl -D /pg/postgresql/data/ -l logfile  start# 关闭服务
pg_ctl -D /pg/postgresql/data/ -l logfile  stop

 

至此,便可以通过客户端连接数据库进行操作了

数据库创建及使用

 7、 数据库创建及使用

7.1 在默认配置条件下,本机访问PostgreSQL

切换到Linux用户postgres,然后执行psql

psql

此时就在数据库postgres中了。使用 psql -d [databasename] 可登录其他数据库。注意:执行psql命令时,必须确认已配置postgresql的环境变量。

7.2 创建数据库新用户如qztest 

postgres=# create user qztest with password 'qztestuat2023!';
CREATE ROLE
注意:语句要以分号结尾。密码要用单引号括起来。

7.3 创建用户数据库,如qztestdb

postgres=# CREATE DATABASE qztestdb OWNER qztest;
----------------------------------------------------------------------
另一种方式创建数据库:createdb qztestdb

 7.4 将qztestdb数据库的所有权限都赋予qztest

postgres=# GRANT ALL PRIVILEGES ON DATABASE qztestdb TO qztest;

7.5 使用命令 \q 退出psql

postgres=# \q
或者输入quit退出

7.6 以qztestdb的身份连接数据库qztestdb

psql -d qztestdb

7.7 创建表、索引、并插入数据

qztestdb=# create table  test1(id int  not null  primary key,name  varchar(20),age int );
CREATE TABLE
qztestdb=# create index idx_test1_name on test1(name);
CREATE INDEX
qztestdb=# insert into test1 values(1,'lisi',28);
INSERT 0 1
qztestdb=# insert into test1 values(2,'测试',20);
INSERT 0 1
qztestdb=# insert into test1 values(3,'前置',22);
INSERT 0 1
qztestdb=# insert into test1 values(4,'chinalife',59);
INSERT 0 1
qztestdb=# insert into test1 values(5,'小新',51);
INSERT 0 1
qztestdb=# insert into test1 values(6,'张三',58);
INSERT 0 1
qztestdb=# insert into test1 values(7,'历史',64);
INSERT 0 1
qztestdb=# insert into test1 values(8,'网二',11);
INSERT 0 1
qztestdb=# insert into test1 values(9,'码子',28);
INSERT 0 1
qztestdb=# insert into test1 values(10,'小红',99);
INSERT 0 1

查询表:
qztestdb=# select * from test1;

8、 开启远程访问

8.1 编辑配置文件

文件:postgresql.conf


位置:vim /pg/postgresql/data/postgresql.conf
添加/修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:
listening_address: '*'

 文件:pg_hba.conf

位置:vim /pg/postgresql/data/pg_hba.conf
添加/修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:
host    all             all             0.0.0.0/0               md5

 和上面安装时候配置一样.

8.2 重启数据库服务

pg_ctl -D /pg/postgresql/data/ -l logfile  restart

8.3 此后即可从其它机器上登录,例如用Navicat for PostgreSQL

主机名或IP: 192.*.*.*

端口:          5432

初始数据库:    xxx

用户:          xxx

密码:          ******  

(数据库用户xxf的密码,不是Linux用户xxf的密码)

参考链接一,参考链接二

相关文章:

Postgresql部署及简单操作

目录 1、介绍 2、什么是PostgreSQL 3、PostgreSQL 的特点 4、数据库定为 5、环境准备 6、编译安装 6.1 安装依赖包 6.2 下载安装包 6.3 创建用户 6.4 创建 postgresql数据目录并授权 6.5 上传压缩包并解压 6.6 编译postgresql源码 6.7 配置环境变量 6.8 初始化数…...

rabbitmq集群搭建

升级步骤 1.升级包上传 1.1上传erlang、rabbitmq安装包 创建对应升级目录 将安装包otp_src_22.1.7.tar.gz上传到新创建的目录下 将安装包rabbitmq-server-generic-unix-3.8.9.tar.xz上传到新创建的目录下 1.2 执行解压命令tar -zxvf otp_src_22.1.7.tar.gz xz -d rabbitmq-s…...

C++ 二叉搜索树的概念特性

1. 二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树 ,或者是具有以下性质的二叉树 : 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大…...

7、Spring_AOP

一、Spring AOP 简介 1.概述 对于spring来说,有三大组件,IOC,ID,AOP aop概述:AOP(Aspect Oriented Programming)面向切面编程。 作用:不改变原有代码设计的基础上实现功能增强 例子 传统打印日志 使用…...

QChart:数据可视化(用图像形式显示数据内容)

1、数据可视化的图形有:柱状/线状/条形/面积/饼/点图、仪表盘、走势图,弦图、金字塔、预测曲线图、关系图、数学公式图、行政地图、GIS地图等。 2、在QT Creator的主页面,点击 欢迎》示例》右侧输入框 输入Chart,即可查看到QChar…...

【python】Leetcode(primer-set)

文章目录 78. 子集(集合的所有子集)90. 子集 II(集合的所有子集) 更多 leetcode 题解可参考:【Programming】 78. 子集(集合的所有子集) 给定一组不含重复元素的整数数组 nums,返回…...

【LVS集群】

目录 一、集群概述 1.负载均衡技术类型 2.负载均衡实现方式 二、LVS结构 1.三层结构 2.架构对象 三、LVS工作模式 四、LVS负载均衡算法 1.静态负载均衡 2.动态负载均衡 五、ipvsadm命令详解 1. -A 2. -D 3. -L 4. -a 5. -d 6. -l 7. -t 8. -s 9. -r 10. -…...

软考高级系统架构设计师系列之:论文题目类型、论文考试大纲、历年考试论文真题汇总、论文写作原则、论文写作常见问题、论文评分标准

软考高级系统架构设计师系列之:论文题目类型、论文考试大纲、历年考试论文真题汇总、论文写作原则、论文写作常见问题、论文评分标准 一、论文写作概述二、论文题目类型三、论文考试大纲1.系统建模2.软件架构设计3.系统设计4.分布式系统设计5.系统的可靠性分析与设计6.系统的安…...

完整的application.xml

<!-- 资源文件配置 --><beans profile"dev"><bean class"com.ningpai.util.CustomPropertyPlaceholderConfigurer"><property name"locations"><list><value>classpath:/com/ningpai/web/config/dev/jdbc.p…...

C语言:运算符优先级

一、优先级&#xff08;常使用的运算符&#xff09; 见表格 二、注意 总体原则&#xff1a;算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符 同一级别下的运算符的运算次序由表达式的结合方向决定 运算符注释级别( )圆括号1[ ]数组下标1后置后置2后置--后置--2前置…...

Android GreenDao数据库升级(附Demo)

前言 大家好久不见&#xff0c;一转眼马上八月份下旬了&#xff0c;最近由于工作比较忙&#xff0c;没时间给大家更新博文。百忙之中抽出时间&#xff0c;给大家来更新一篇关于GreenDao3数据库的升级。 关于GreenDao的详细介绍以及一些逻辑性的增、删、改、查等&#xff0c;可以…...

剑指 Offer 32 - III. 从上到下打印二叉树 III

目录 使用函数实现 使用双端队列实现 请实现一个函数按照之字形顺序打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 例如: 给定二叉树: [3,9,20,nu…...

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】 1、前言2、实验环境3、自我总结&#xff08;1&#xff09;文件的编写&#xff08;2&#xff09;信号与槽的新理解&#xff08;3&#xff09;线程数据的传递 4、移植步骤第一步&#xff1a;添加新文…...

后端开发12.商品模块

概述 简介 商品模块这个设计的非常复杂 效果图 数据库...

/usr/bin/containerd: Operation not permitted

问题 今天在重启docker程序的时候一直启动不起来&#xff0c;通过systemctl status docker和jourctl -xu docker也没有发现什么有用的报错信息&#xff0c;无奈只好查看/var/log/message&#xff0c;发现以下错误提示&#xff1a; Started containerd container runtime Start…...

分析商务报表使用什么工具?

传统的BI分析商务报表存在的问题 随着数字化转型的深入推进&#xff0c;企业面临着海量数据的挑战和机遇。数据是企业的重要资产&#xff0c;能够帮助企业洞察市场动态、优化业务流程、提升客户满意度、创造竞争优势。然而&#xff0c;传统的BI&#xff08;商业智能&#xff0…...

nginx文件配置

在部署前后端分离项目时&#xff0c;当前端和后端不在一个服务器上时&#xff0c;需要在前端服务器上下载nginx并配置 #hkdp-front-test 前端服务器 xxx.xxx.x.69 前端项目端口号9528&#xff0c;监听文件夹 /home/apps/vue/hkdp-manager 配置如下 server{ …...

视频云存储/安防监控EasyCVR视频汇聚平台如何通过角色权限自行分配功能模块?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…...

小程序定位到 胶囊的三个点大概中间

话不多说&#xff0c;先上效果图 这个功能实现思路: 首先先拿到这一张整图(快捷&#xff0c;精确)然后获取整个导航栏高度(自定义导航栏,非自定义导航栏忽略这一步)获取三个点的做偏移量&#xff0c;把高度和偏移量给到一个定位到盒子&#xff0c;这个盒子里就放这个图片&…...

Maven详解

文章目录 一、引言1.1 为什么需要 Maven&#xff1f;1.2 Maven 解决了哪些问题&#xff1f;1.2.1 添加第三方jar包1.2.2 jar包之间的依赖关系1.2.3 处理jar包之间的冲突1.2.4 获取第三方jar包1.2.5 将项目拆分成多个工程模块1.2.6 实现项目的分布式部署 二、介绍三、Maven 的特…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...

6.计算机网络核心知识点精要手册

计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法&#xff1a;数据与控制信息的结构或格式&#xff0c;如同语言中的语法规则语义&#xff1a;控制信息的具体含义和响应方式&#xff0c;规定通信双方"说什么"同步&#xff1a;事件执行的顺序与时序…...