postgresql安装及配置超详细教程

1. 安装

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

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum install postgresql96 postgresql96-server
rpm -qa|grep postgre

初始化数据库

执行完初始化任务之后,postgresql 会自动创建和生成两个用户一个数据库

  • linux 系统用户 postgres:管理数据库的系统用户;
  • 密码由于是默认生成的,需要在系统中修改一下,$passwd postgres
  • 数据库用户 postgres:数据库超级管理员此
  • 用户默认数据库为postgres
/usr/pgsql-9.6/bin/postgresql96-setup initdb

设置成 centos7 开机启动服务

systemctl enable postgresql-9.6

启动 postgresql 服务

systemctl start postgresql-9.6
systemctl status postgresql-9.6

2. PostgrepSQL的简单配置

pgsql9.6配置文件位置默认在:/var/lib/pgsql/9.6/data/postgresql.conf

2.1 修改监听的ip和端口

监听IP使用localhost时,只能通过127.0.0.1访问数据库;
如果需要通过其他远程地址访问PostgreSQL,可以使用“,”作为分隔符,把IP地址添加到listen_addresses后,或者使用“*”,让所有IP都可以访问数据库。

注意:这里只是开启数据库的远程访问权限,具体是否能够进行远程登录,还需要依据pg_hba.conf的认证配置,详细内容见下节。

# - Connection Settings -

#listen_addresses = 'localhost' # what IP address(es) to listen on;
     # comma-separated list of addresses;
     # defaults to 'localhost'; use '*' for all
     # (change requires restart)
#port = 5432 # (change requires restart)

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

日志收集,一般是打开的

# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
     # into log files. Required to be on for
     # csvlogs.
     # (change requires restart) 

日志目录,一般使用默认值

# These are only used if logging_collector is on:
log_directory = 'pg_log' # directory where log files are written,
     # can be absolute or relative to PGDATA 

只保留一天的日志,进行循环覆盖

log_filename = 'postgresql-%a.log' # log file name pattern,
     # can include strftime() escapes
log_truncate_on_rotation = on # If on, an existing log file of the
     # same name as the new log file will be
     # truncated rather than appended to.
     # But such truncation only occurs on
     # time-driven rotation, not on restarts
     # or size-driven rotation. Default is
     # off, meaning append to existing files
     # in all cases.
log_rotation_age = 1d # Automatic rotation of logfiles will
     # happen after that time. 0 disables.
log_rotation_size = 0 # Automatic rotation of logfiles will 

2.3 内存参数

共享内存的大小,用于共享数据块。如果你的机器上有足够的内存,可以把这个参数改的大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。

# - Memory -
shared_buffers = 32MB # min 128kB
     # (change requires restart) 

单个SQL执行时,排序、hash json所用的内存,SQL运行完后,内存就释放了。

# actively intend to use prepared transactions.
#work_mem = 1MB # min 64kB 

PostgreSQL安装完成后,可以主要修改以下两个主要内存参数:
shared_buffer:共享内存的大小,主要用于共享数据块,默认是128MB;
如果服务器内存有富余,可以把这个参数适当改大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读取,而不需要去文件读取。

work_mem:单个SQL执行时,排序、hash join所使用的内存,SQL运行完成后,内存就释放了,默认是4MB;
增加这个参数,可以提高排序操作的速度。

3. 数据库的基础操作

3.1 连接数据库控制台

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

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

切换 postgres 用户后,提示符变成 -bash-4.2$
使用psql连接到数据库控制台,此时系统提示符变为'postgres=#'

$ su postgres
bash-4.2$ psql
psql (9.6)
Type "help" for help.

postgres=#

3.2 一些常用控制台命令

命令 作用
\h 查看所有sql命令,\h select 等可以查看具体命令
? 查看所有psql命令
\d 查看当前数据库所有表
\d [tablename] 查看具体的表结构
\du 查看所有用户
\l 查看所有数据库
\e 打开文本编辑器

3.3 SQL控制台操作语句

数据库创建与修改

# 创建数据库
create database testdb;
# 删除数据库
drop database testdb;
# 重命名数据库(该数据库必须没有活动的连接)
alter database testdb rename to newname;
# 以其他数据库为模板创建数据库(表结构、数据都会复制)
create database newdb template testdb;

# 将查询结果写入文件
\o /tmp/test.txt
select * from test;
# 列状显示
\w
# 再一次\o关闭写入,否则是连续写入的
\o
# 退出控制台
\q

数据库用户创建与授权

# 建立新的数据库用户
create user zhangsan with password '123456';
# 为新用户建立数据库
create database testdb owner zhangsan;
# 把新建的数据库权限赋予新用户
grant all privileges on database testdb to zhangsan;

4. 认证登录

认证权限配置文件: /var/lib/pgsql/9.6/data/pg_hba.conf

命令行的各个参数解释说明:

  • -U username 用户名,默认值postgres
  • -d dbname 要连接的数据库名,默认值postgres。如果单指定-U,没指定-d参数,则默认访问与用户名名称相同的数据库。
  • -h hostname 主机名,默认值localhost
  • -p port 端口号,默认值5432

4.1 认证方式

常见的四种身份验证方式

  • trust:凡是能连接到服务器的,都是可信任的。只需要提供数据库用户名,可以没有对应的操作系统同名用户;
  • password 和 md5:对于外部访问,需要提供 psql 用户名和密码。对于本地连接,提供 psql 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别就是外部访问时传输的密码是否用 md5 加密;
  • ident:对于外部访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录;对于本地连接,实际上使用了peer;
  • peer:通过客户端操作系统内核来获取当前系统登录的用户名,并作为psql用户名进行登录。

4.2 远程登录

postgresql.conf

listen_addresses = '*' # what IP address(es) to listen on;

pg_hba.conf
所有的用户通过任意ip都可以通过md5(密码)的方式登陆PostgreSQL,配置如下:

host all all 0.0.0.0/0 ident

验证

# server:重启生效
systemctl restart postgresql-9.6
# client:命令行远程登录
psql -U zhangsan -d testdb -h 10.122.45.97 -p 5432

4.3 本地登录

PostgreSQL登陆默认是peer,不需要验证用户密码即可进入psql相关数据库,但前提是必须切换用户登陆。类似于最开始执行的su postgres;psql一样。

[root@sltkp3cbpch data]# psql -U zhangsan -d testdb -p 5432
psql: FATAL: Peer authentication failed for user "zhangsan"

如果必须按照上述登陆方式登陆的话,有两种修改方式:

  • 增添map映射
  • 修改认证方式

a. map映射

map映射是用来将系统用户映射到对应的postgres数据库用户,用来限制指定的用户使用指定的账号来登陆。

pg_ident.conf
修改pg_ident.conf文件,与pg_hba.conf文件同级目录。其基本格式如下:

# MAPNAME SYSTEM-USERNAME PG-USERNAME
map_zhangsan root zhangsan
  • MAPNAME指的是映射的名称,比如map_zhangsan
  • SYSTEM-USERNAME就是系统用户的名称,比如root
  • PG-USERNAME就是数据库里存在的用户名称,比如zhangsan

上面定义的map意思是:定义了一个叫做map_zhangsan的映射,当客户端用户是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安装及配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解CentOS7下PostgreSQL 11的安装和配置教程

    1. 官网地址 官网上提供了安装参考步骤:点击此处查看官网 2. 安装RPM yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 3. 安装客户端 yum install postgresql11 4. 安装服务器端 yum install postgresql11-server 5. 安装依赖包 yum install

  • Debian中PostgreSQL数据库安装配置实例

    用惯了MySQL后,想尝试使用下PostgreSQL,据说这玩意儿也很强大,我在网上搜索了下相关中文书籍,可惜相关书籍远远没有MySQL那么多,不过我在官方找到了由志愿者翻译的文档(参考9.1文档翻译项目),说实话我英文文档阅读能力还是比较纠结的,所以有中文文档当然优先中文了. 在Debian下可以通过apt-get命令直接安装: 复制代码 代码如下: sudo apt-get install postgresql postgresql-client postgresql-server-dev-

  • Windows上PostgreSQL安装配置教程

    PostgreSQL的扩展PostGIS是最著名的开源GIS数据库. 安装PostgreSQL是第一步. 1.下载PostgreSQL的二进制安装文件. PostgreSQL官网–>Download–>Windows 64位,如图所示: (1)官网: https://www.postgresql.org/ (2)Download: https://www.postgresql.org/download/ https://www.postgresql.org/download/windows/

  • PostgreSQL安装、配置及简单使用方法

    一.PostgreSQL简介 1.什么是PostgreSQL PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON何JSONB类型,数组类型)和自定义类型.而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数.触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python.PL/Tcl,等等. 2.PostgreSQL数

  • Ubuntu PostgreSQL安装和配置的介绍

    1.安装 使用如下命令,会自动安装最新版,这里为9.5 sudo apt-get install postgresql 安装完成后,默认会: (1)创建名为"postgres"的Linux用户 (2)创建名为"postgres".不带密码的默认数据库账号作为数据库管理员 (3)创建名为"postgres"的表 安装完成后的一些默认信息如下: config /etc/postgresql/9.5/main data /var/lib/postgre

  • CentOS7 PostgreSQL安装、配置、使用详解

    CentOS7 PostgreSQL安装 Install 安装 使用yum安装 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm yum install postgresql94-server postgresql94-contrib 设置开机启动 systemctl enable postgresql-9.4.service systemctl start

  • postgresql安装及配置超详细教程

    1. 安装 根据业务需求选择版本,官网下载 yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm yum install postgresql96 postgresql96-server rpm -qa|grep postgre 初始化数据库 执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库:

  • eclipse汉化及jdk安装环境配置超详细教程(Java安装教程)

    很开心能写下这篇文章帮助对java语言有兴趣的人 关于java软件分为idea以及ec 这里我们使用ec 我安装时也遇见了很多问题,诸如安装路径,环境配置 网上许多文章众说纷纭, 踩过许多坑,所以才有意写下此文,帮助那些对于Java.有兴趣的同学们,话不多说,一起来看吧 1.下载安装ec 这是java构成的一部分 这里我直接提供下载 进入直接下载即可 https://www.eclipse.org/downloads/ 点击下载 进入这个页面 点击镜像加速器下载 加粗样式 选择图中有china文

  • 史上最贴心的 VS code C++ 环境配置超详细教程

    前言 秦朝打败天下无敌手的室友法苏ovo前几天参加了CCSP,裸考的他遇见了Linux下的VsCode,然后搭C++环境搭了很久. 于是,他就学会了如何配置vscode的C++环境,然后,我也顺路学会了.真好. 一.VS code 前言 VS code作为一款当下非常受欢迎的一款IDE,关于它的优势这里就不赘述了,但想必用过它的人都应该体验过配环境的绝望,尤其是C++环境的配置. 有一说一,VS code 上面C++调试起来是真的挺方便的,真的很棒. 这里给大家介绍两种C++环境配置方法: 纯手

  • Navicat Premium 12.0.29安装与激活超详细教程

    目录 下载安装程序及激活工具 1.安装程序 2.激活程序 Navicat Premium 是一套多连接数据库开发工具,让你在单一应用程序中同时连接多达六种数据库:MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL,可一次快速方便地访问所有数据库. 下载安装程序及激活工具 下载 链接: 注意:因某些限制,下载链接通过如下方式获取: 需要的小伙伴,请关注微信公众号: Java技术迷, 或者扫描下方公众号二维码,回复关键字:211216, 即可免费无

  • pcl1.8.0+vs2013环境配置超详细教程

    目录 准备 安装 配置 最近开始学习pcl,经过几天的捣鼓终于将pcl1.8.0和vs2013的环境搭建起来. 准备 pcl版本:PCL-1.8.0-AllInOne-msvc2013-win64 vs版本:vs2013 下载地址链接:链接: https://pan.baidu.com/s/1L6trLERkzylkBUjTw94RNQ?pwd=ep39   提取码: ep39 因为我的电脑是64位的,所以只有64位版本. 安装 vs2013下载解压默认安装就好了. PCL整个安装过程需要注意以

  • PyCharm Community安装与配置的详细教程

    [内容]: 最近python挺火,空闲时间看了几个python视频,觉得简单易懂,开发效率高,应用范围广,值得学习.如下便开始搭建学习环境,即安装一款好用的Python IDE. Pycharm作为一款针对 Python的编辑器,配置简单.功能强大.使用起来省时省心,对初学者友好,所以先在windows上进行安装.配置和使用. 一.Pycharm的下载和安装 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=wind

  • Visual Studio 2022下载安装与使用超详细教程

    目录 前言 一.Windows安装Visual Studio 2022 1.1 下载地址 1.2 开始安装 1.3 打开Visual Studio 二.Visual Studio创建一个新的项目 2.1 一些准备工作 2.2 创建一个新的项目 2.3 创建C文件 前言 本文用于记录Visual Studio 2022的安装与使用,将持续进行更新.当前版本:V1,2021.12.04 一.Windows安装Visual Studio 2022 1.1 下载地址 首先登陆Visual Studio官

  • Python编辑器Pycharm安装配置超详细教程

    今天给大家推荐一款很好用的Python编辑器,全世界90%Python开发者都会用的开发工具------Pycharm,完全免费哦 1. 百度搜索pycharm,进入pycharm官网,带有’PyCharm: the Python IDE for Professional’字样的就是官网 2. 在官网首页点击如下图所示任意’Download’进入下载页面 3. 在下载页面有如下图两个下载接口,一个专业版,一个社区版,推荐使用社区版,免费,然后点击右边红框里面的’Download’进行下载,这里下

  • VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)

    一位读大二的学弟问我怎么安装配置这些,我简单的整了一个教程,这里记录一下,并分享给需要的朋 安装过程学习使用足够,实际工作中有些繁琐的配置略过了! 打开VM虚拟机,菜单栏[文件]-->选择[新建虚拟机],选择"o自定义(高级)"-->[下一步] 默认一直点[下一步]到选择安装盘的位置,选择自己已经下载好的官方DVD镜像文件(不要整别的镜像,避免走不必要 的坑) [下一步]设置虚拟机名称(取一个合适的名称,设置合适的路径) 处理器设置默认,安装好虚拟centos后可以根据情况

  • Navicat Premium 12.0.29安装与激活超详细教程

    Navicat Premium 是一套多连接数据库开发工具,让你在单一应用程序中同时连接多达六种数据库:MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL,可一次快速方便地访问所有数据库. 下载安装程序及激活工具 链接: https://pan.baidu.com/s/1nV8me7zYrv_ShfX0wBZXOw 提取码: ufy3 1.安装程序 双击navicat12029_premium_cs_x64.exe(64位简体中文),根据指引正

随机推荐