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  start

b)  通过服务关闭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的密码)

参考链接一,参考链接二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/87950.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:二叉树及相关操作

文章目录 前言一、树的概念及结构1.什么是树2. 树的相关概念3.树的表示 二、二叉树概念及结构1.二叉树概念2.特殊的二叉树3.二叉树的性质4.二叉树的存储结构 三、平衡二叉树实现1.创建树和树的前中后遍历1.前中后遍历2.创建树且打印前中后遍历 2.转换为平衡二叉树和相关操作1.转…

搭建Tomcat HTTP服务:在Windows上实现外网远程访问的详细配置与设置教程

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#xff0…

【五子棋】

五子棋 文章目录 五子棋前言一、登录功能二.哈希表管理用户的会话和房间三.基于Websocket连接开发的功能1.匹配功能2.游戏房间3.挑战功能4.人机对战5.聊天功能 前言 这篇博客主要详细介绍我的五子棋项目的核心功能的实现细节,也就是详细介绍五子棋各个功能是如何实…

开悟Optimization guide for intermediate tracks

目录 认识模型 参考方案(按模块拆解) 认识模型 模型控制1名英雄进行镜像1 v 1对战 Actor集群资源为64核CPU 问题特点:单一公平对抗场景(同英雄镜像对赛),单位时间样本产能低,累计训练资源相…

leetcode 718. 最长重复子数组

2023.8.24 本题求得子数组,其实就是连续的序列。定义一个二维dp数组,dp[i][j]的含义为:以下标i为结尾的nums1和以下标j为结尾的nums2之间的公共最长子数组。 易得:递推公式为dp[i][j] dp[i-1][j-1] 1; 由此可以看出当…

stm32 之20.HC-06蓝牙模块

原理图显示使用usart3串口使用的是PB10和PB11引脚 直接配置usart3串口协议 void usart3_init(uint32_t baud) {GPIO_InitTypeDef GPIO_InitStructureure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;//端口B硬件时钟打开RCC_AHB1PeriphClockC…

【洛谷】P1678 烦恼的高考志愿

原题链接:https://www.luogu.com.cn/problem/P1678 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 将每个学校的分数线用sort()升序排序,再二分查找每个学校的分数线,通过二分找到每个同学估分附近的分数线。 最后…

键入网址到网页显示,期间发生了什么?

目录 1.DNS2.可靠传输 —— TCP3.远程定位 —— IP4.两点传输 —— MAC5.出口 —— 网卡6.送别者 —— 交换机(可省略)7.出境大门 —— 路由器8.数据包抵达服务器后9.响应过程:带有MAC、IP、TCP头部的完整HTTP报文: 1.DNS 客户端…

Android---- 一个完整的小项目(消防app)

前言: 针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊! 此app主要为了传递 消防…

【HCIP】08.ISIS中间系统

链路状态协议,传递LSA信息ISIS基于数据链路层封装在OSI时,也有自己的网络层地址和自己的路由协议,即ISIS。之前的ISIS支持OSI的网络层地址,是为OSI中的CLNP(无连接网络协议)网络设计的路由协议,…

MySQL索引介绍 为什么mysql使用B+树

什么是索引? 索引是一种用于快速查询和检索数据的数据结构,常见的索引结构有:B树,B树和Hash。 索引的作用就相当于目录。打个比方,我们在查字典的时候,如果没有目录,那我们就只能一页一页的去…

Keepalived+Lvs(dr)调度器主备配置小实验

目录 前言 一、实验拓扑图 二、配置LVS(dr)模式 三、配置调配器热备 四、测试 总结 前言 Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalive…

node和前端项目宝塔部署

首先需要一台服务器 购买渠道:阿里云、腾讯云、百度云、华为云 一、以阿里云为例 购买esc 可临时购买测试服务器 二、安装宝塔 复制公网ip地址 通过Xshell 进行账号密码的连接 连接后访问宝塔官网 宝塔面板下载,免费全能的服务器运维软件 找到自己…

使用PyMuPDF添加PDF水印

使用Python添加PDF水印的博客文章。 C:\pythoncode\new\pdfwatermark.py 使用Python在PDF中添加水印 在日常工作中,我们经常需要对PDF文件进行处理。其中一项常见的需求是向PDF文件添加水印,以保护文件的版权或标识文件的来源。本文将介绍如何使用Py…

C++入门:内联函数,auto,范围for循环,nullptr

目录 1.内联函数 1.1 概念 1.2 特性 1.3 内联函数与宏的区别 2.auto关键字(C11) 2.1 auto简介 2.2 auto的使用细则 2.3 auto不能推导的场景 3.基于范围的for循环(C11) 3.1 范围for的语法 3.2 范围for的使用方法 4.指针空值nullptr(C11) 4.1 C98中的指针空值 1.内联…

C#使用自定义的比较器对版本号(编码)字符串进行排序

给定一些数据,如下所示: “1.10.1.1.1.2”, “1.1”, “2.2”, “1.1.1.1”, “1.1.3.1”, “1.1.1”, “2.10.1.1.1”, “1.1.2.1”, “1.2.1.1”, “2.5.1.1”, “1.10.1.1”, “1.10.2.1”, “1.11.3.1”, “1.11.12.1”, “1.11.11.1”, “1.11.3.1”, “1”, “…

rabbitmq的发布确认

生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式, 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的唯一 ID)&…

14、缓存预热+缓存雪崩+缓存击穿+缓存穿透

缓存预热缓存雪崩缓存击穿缓存穿透 ● 缓存预热、雪崩、穿透、击穿分别是什么?你遇到过那几个情况? ● 缓存预热你是怎么做到的? ● 如何避免或者减少缓存雪崩? ● 穿透和击穿有什么区别?它两一个意思还是截然不同&am…

如何提高企业生产效率与安全性?设备报修管理系统有什么用?

随着现代工业技术的不断发展,企业生产设备变得越来越复杂,出现故障的可能性也随之增加。设备故障不仅会降低企业的生产效率,还可能导致生产安全事故的发生。为了更好地管理维护生产设备,提高生产效率和安全性,本文将向…

RedisTemplate和StringRedisTemplate的区别、对比

学习 Jedis、RedisTemplate、StringRedisTemplate之间的比较 博客中提到:一. Jedis是Redis官方推荐的面向Java的操作Redis的客户端。 二. RedisTemplate,StringRedisTemplate是SpringDataRedis中对JedisApi的高度封装。SpringDataRedis相对于Jedis来说可以方便地更…