Postgresql部署及简单操作

news/2024/7/9 22:58:42 标签: postgresql, 数据库

目录

1、介绍

2、什么是PostgreSQL

3、PostgreSQL 的特点

4、数据库定为

5、环境准备 

6、编译安装

6.1 安装依赖包

6.2 下载安装包

6.3 创建用户

postgresql%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%B9%B6%E6%8E%88%E6%9D%83-toc" style="margin-left:80px;">6.4 创建 postgresql数据目录并授权

 6.5 上传压缩包并解压

postgresql%E6%BA%90%E7%A0%81%C2%A0-toc" style="margin-left:80px;">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

postgresql%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%B9%B6%E6%8E%88%E6%9D%83">6.4 创建 postgresql数据目录并授权

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

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

 6.5 上传压缩包并解压

rz filename

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

postgresql%E6%BA%90%E7%A0%81%C2%A0">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的密码)

参考链接一,参考链接二


http://www.niftyadmin.cn/n/4961462.html

相关文章

cookie、localStorage、sessionStorage

一、localStorage 1.1 保存数据 localStorage.setItem("MY_SEARCH_HIS", value); 2.1 读取数据 localStorage.getItem("MY_SEARCH_HIS") 2.3 清楚缓存 //删除某项缓存 localStorage.removeItem("key"); //清空所有缓存 localStorage.clear();…

ES6-简介、语法

ES6 ES6简介 ​ ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语…

SQLSTATE[IMSSP]: The active result for the query contains no fields.

我的是SQL server 报错场景,代码: $psendmx_sql"SET IDENTITY_INSERT PSENDMX ON;INSERT INTO psendmx (DJBH,MIBH,MXBH,SPDM,GG1DM,GG2DM,SL,SL_2,CKJ,ZK,DJ,DJ_1,JE,HH) VALUES {$mx_values};SET IDENTITY_INSERT PSENDMX OFF;"; $a$db_er…

Linux面试笔试题(6)

91、6块300G的硬盘做raid5,新的设备容量是多大(C) A 900G B 1800G C 1500G D 300G 6300G−300G 1500G 由于一块硬盘用于奇偶校验,所以设备容量将是1500G. Raid 5是一种磁盘阵列,将数据分散到多个硬盘上以提高性能和可…

【Python】【数据结构和算法】查找最大或最小的N个元素

除了直接排序,还可以利用heaq模块的nlargest()和nsmallest()方法,例如: >>> nums [3, 5, 2, 4, 1] >>> smallest heapq.nsmallest(3, nums) >>> print(smallest) [1, 2, 3] >>> largest heapq.nlarg…

YOLO目标检测算法调试过程学习记录

先前已经完成过YOLO系列目标检测算法的调试过程,今天主要是将所有的调试加以总结 这里的conda环境就不再赘述了,直接使用requirement.txt文件的即可,也可以参考YOLOX的配置过程5 数据集处理 YOLOv5有自己的数据集格式,博主的数据…

plt不显示图片

最近python工程导入yolov5的包后,使用plt发现图片不显示了。 使用 print(matplotlib.get_backend())可以打印看到,在导入前,打印出来的值是 module://backend_interagg 而导入yolov5后,不显示图片时打印出来的值是agg。 所以…

Putty连接登录Linux centos7

一、下载Putty 下载网址 https://www.putty.org/ 安装完成后会有两个重要的软件 Putty是用于连接Linux的客户端 PuTTYgen是通过客户端下载的service.ppk生成本地登录要用到的key 二、运行putty 双击putty.exe可以打开程序(程序小,学习linux可以把该…