本文主要介绍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安装和配置的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!