postgresql安装及配置超详细教程

postgresql安装及配置超详细教程

本文主要介绍postgresql安装配置的超详细教程,对大家来说非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。

: 目录

1.安装初始化数据库

2.PostgreSQL的简单配置2.1修改监听的ip和端口2.2修改数据库日志相关的参数2.3内存参数3。数据库的基本操作3.1连接到数据库控制台3.2一些常见的控制台命令

3.3 SQL控制台操作语句4 .身份验证登录4.1身份验证模式4.2远程登录4.3本地登录

1. 安装

根据业务需求选择版本,从官网下载。

yum install https://download . PostgreSQL . org/pub/repos/yum/9.6/red hat/rhel-7-x86 _ 64/pgdg-centos 96-9.6-3 . no arch . rpm

yum安装postgresql96

rpm -qa|grep postgre

初始化数据库

初始化任务完成后,postgresql将自动创建并生成两个用户和一个数据库:

Linux系统用户postgres:管理数据库的系统用户;

由于密码是默认生成的,因此需要在系统中修改它,$passwd postgres

用户postgres:数据库超级管理员这

默认的用户数据库是postgres。

/usr/pgsql-9.6/bin/PostgreSQL 96-setup initdb

设置为centos7引导服务。

systemctl启用postgresql-9.6

启动postgresql服务

systemctl启动postgresql-9.6

systemctl状态postgresql-9.6

2. PostgrepSQL的简单配置

pg9.6配置文件的位置默认为:/var/lib/pgsql/9.6/data/PostgreSQL . conf。

2.1 修改监听的ip和端口

当IP使用localhost进行监控时,只能通过127.0.0.1访问数据库;

如果需要通过其他远程地址访问PostgreSQL,可以使用“,”作为分隔符,在listen_addresses后添加IP地址,或者使用“*”使所有IP地址都可以访问数据库。

注意:这只是为了打开数据库的远程访问权限。远程登录是否可能取决于pg_hba.conf的身份验证配置,详情见下一节。

# -连接设置-

#listen_addresses=localhost #要侦听的IP地址;

#逗号分隔的地址列表;

#默认为“localhost”;使用 * 表示全部

#(更改需要重新启动)

#port=5432 #(更改需要重新启动)

2.2 修改数据库log相关的参数

收集日志,日志通常是打开的。

#这在记录到stderr时使用:

logging_collector=on #启用捕获stderr和csvlog

#到日志文件中。要求开启

# csvlogs。

#(更改需要重新启动)

目录,一般使用默认值

#这些仅在logging_collector打开时使用:

log_directory=pg_log #写入日志文件的目录,

#可以是绝对的或相对于PGDATA的

只保留一天的日志用于循环覆盖。

log _ filename= PostgreSQL-% a . log # log文件名模式,

#可以包含strftime()转义

log_truncate_on_rotation=on #如果为on,则为的现有日志文件

#与新日志文件同名

#截断而不是追加。

#但是这种截断只发生在

#时间驱动旋转,不在重启时

#或尺寸驱动的旋转。默认值为

# off,表示附加到现有文件

#在所有情况下。

log_rotation_age=1d #自动循环日志文件将

#发生在那之后。0表示禁用。

log_rotation_size=0 #自动循环日志文件将

2.3 内存参数

用于共享数据块的共享内存的大小。如果您的计算机上有足够的内存,您可以将该参数更改得更大,以便数据库可以缓存更多的数据块。读取数据时,可以从共享内存中读取,而不是从文件中读取。

# -记忆-

shared_buffers=32MB #最小128kB

#(更改需要重新启动)

当执行单个SQL时,用于排序和散列json的内存在SQL运行后被释放。

#积极打算使用准备好的交易。

#work_mem=1MB #最小64kB

安装PostgreSQL后,主要可以修改以下两个主存参数:

Shared_buffer:共享内存的大小,主要用于共享数据块。默认值为128MB;

如果服务器中有多余的内存,您可以适当地更改该参数,以便数据库可以缓存更多的数据块。读取数据时,可以从共享内存中读取数据,而无需读取文件。

Work_mem:执行单个SQL时用于排序和散列连接的内存。SQL结束后,释放内存,4MB默认情况下;

添加此参数可以加快排序操作。

3. 数据库的基础操作

3.1 连接数据库控制台

如果要连接数据库,需要切换到postgres用户(默认认证配置的前提下)。

在postgres用户下连接数据库不需要密码。

切换postgres用户后,提示符变成-bash-4.2$

使用psql连接到数据库控制台,系统提示变成 postgres=#

$ su postgres

bash-4.2$ psql

psql (9.6)

键入“help”获取帮助。

postgres=#

3.2一些常见的控制台命令

命令

功能

h

查看所有sql命令,h select等。您可以查看特定的命令。

查看所有psql命令

d

查看当前数据库中的所有表

d

[表名]查看具体的表结构

查看所有用户

l

查看所有数据库

e

打开文本编辑器

3.3 SQL控制台操作语句

数据库创建和修改

#创建数据库

创建数据库testdb

#删除数据库

删除数据库testdb

#重命名数据库(数据库必须没有活动连接)

将数据库testdb重命名为newname

#使用其他数据库作为模板创建数据库(将复制表结构和数据)

创建数据库newdb模板testdb

#将查询结果写入文件

o /tmp/test.txt

select * from test

#列显示

w

#再次o关闭写入,否则为连续写入。

o

#退出控制台

q

数据库用户创建和授权

#创建新的数据库用户

创建密码为“123456”的用户张三;

#为新用户建立数据库

创建数据库testdb的所有者张三;

#向新用户授予新的数据库权限。

将数据库testdb上的所有权限授予张三;

4. 认证登录

身份验证权限配置文件:/var/lib/pgsql/9.6/data/pg _ HBA . conf

命令行每个参数的解释:

-U用户名,默认值postgres

-d dbname要连接的数据库名称,默认值为postgres。如果只指定了-U而没有指定-d参数,默认情况下将访问具有相同用户名的数据库。

-h hostname主机名,默认值为localhost。

-p端口号,默认值为5432。

4.1 认证方式

四种常见的身份验证方法

信任:可以连接到服务器的任何人都是可信的。只需要提供数据库用户名,但是不能有操作系统名称相同的对应用户。

密码和md5:对于外部访问,您需要提供psql用户名和密码。对于本地连接,除了提供psql用户名和密码之外,您还需要能够访问操作系统(由与操作系统同名的用户进行身份验证)。密码和md5的区别在于外部访问时传输的密码是否用md5加密;

Ident:外部访问,从ident服务器获取客户端操作系统的用户名,然后以数据库用户名登录操作系统;对于本地连接,对等;是实际使用的;

Peer:通过客户端操作系统内核获取当前系统登录的用户名,以psql用户名登录。

4.2 远程登录

postgresql.conf

listen_addresses=* #要侦听的IP地址;

pg_hba.conf

的所有用户都可以通过md5(密码)通过任何ip登录PostgreSQL,配置如下:

主机所有所有0.0.0/0标识

确认

#服务器:重启生效。

systemctl重新启动postgresql-9.6

# client:命令行远程登录

psql -U张三-d testdb -h 10.122.45.97 -p 5432

4.3 本地登录

PostgreSQL登录默认是peer,所以可以不验证用户密码进入psql相关数据库,但前提是必须切换用户登录。类似于假设的初始执行;Psql也一样。

[root@sltkp3cbpch data]# psql -U张三-d testdb -p 5432

psql:致命错误:用户“张三”的对等验证失败

如果必须按照上述登录方法登录,有两种方法可以修改:

添加地图映射

认证模式修改

A.地图制图

Map用于将系统用户映射到相应的postgres数据库用户,并限制指定的用户使用指定的帐户登录。

pg_ident.conf

修改pg_ident.conf文件,使其与pg_hba.conf文件具有相同的目录。其基本格式如下:

#地图名称系统-用户名PG-用户名

地图_张三根张三

名称是指地图的名称,比如map _张三。

SYSTEM-USERNAME是系统用户的名称,例如root。

PG-USERNAME是数据库中已经存在的用户名,比如张三。

上面定义的map是指:定义了一个名为map_zhangsan的map,当客户端用户是root时,允许用zhangsan用户登录PostgreSQL。

修改pg_hba.conf文件

在peer的认证方法后添加:map=map_tom。

重新启动PostgreSQL服务,重试,并成功连接。

B.修改身份验证方法

需要修改pg_hba.cong文件,将local all all peer改为local all all md5,如下图所示:

重新启动PostgreSQL服务,重试,并成功连接。

就是这样。本文介绍了postgresql安装和配置的详细教程。有关postgresql安装和配置的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

postgresql安装及配置超详细教程