PostgreSQL的安装、配置与使用指南

文章目录

  • 一、介绍
  • 二、安装
    • 1、下载安装
    • 2、验证
  • 三、配置
    • 1、远程连接配置
      • 1)配置postgresql.conf
      • 2)配置pg_hba.conf
      • 3)重启
    • 2、配置数据库的日志
  • 四、图形化界面
    • 1、pgAdmin
    • 2、Navicat

一、介绍

PostgreSQL是一个功能强大的 开源 的关系型数据库,底层基于C实现。

PostgreSQL使用的开源协议是PostgreSQL许可证,也被称为PostgreSQL开放源码许可证。这是一种自由软件许可证,基于BSD许可证。该许可证允许用户自由地使用、修改和分发PostgreSQL数据库管理系统的源代码。它还允许用户将PostgreSQL用于商业目的,并且没有强制性的要求或限制。这使得PostgreSQL成为一个受欢迎的开源数据库解决方案。

PostgreSQL的名字由两部分组成:Post和SQL。

  • "Post"是指Postgres,这是PostgreSQL的前身。Postgres是由Michael Stonebraker和他的团队在加州大学伯克利分校开发的一个关系数据库管理系统。它是早期关系数据库系统的一个重要研究项目。
  • "SQL"代表结构化查询语言(Structured Query Language),它是一种用于管理和操作关系数据库的标准语言。PostgreSQL是一个完全支持SQL的关系数据库管理系统。

因此,将这两个部分合并在一起,就得到了PostgreSQL这个名字

PostgreSQL版本迭代的速度比较快,现在最新的正式的发布版本,已经到了16.RELEASE。

PostgreSQL的版本选择一般有两种:

  • 如果为了稳定的运行,推荐使用12.x版本。
  • 如果想体验新特性,推荐使用14.x版本。

PostgreSQL允许跨版本升级,而且没有什么大问题。

PostgreSQL社区特别活跃,基本是三个月发一版,意味着很多常见的BUG都可以得到及时的修复。

PostgreSQL其实在国外使用的比较多,国内暂时还是以MySQL为主,但是国内很多国产数据库都是基于PostgreSQL做的二次封装:比如华为GaussDB还有腾讯的Tbase等等,甚至很多公司原来玩的Oracle,直接平转到PostgreSQL,同时国内的很多云产品都支持PostgreSQL了。

PostgreSQL因为开源,有很多做数据迁移的工具,可以让你快速的从MySQL,SQLServer,Oracle直接平转到PGSQL中内部,比如pgloader这样的数据迁移工具。

PostgreSQL的官方地址:https://www.postgresql.org
PostgreSQL的国内社区:http://www.postgres.cn/v2/home

推荐使用12.x,比较稳定,而且PostgreSQL中文社区文档也只是翻译这个版本,如下:
在这里插入图片描述

二、安装

不推荐在Windows安装,发挥不出全部功能

1、下载安装

打开官方地址:选择我们想要的版本,我们使用的是Linux7.x版本,如下:
在这里插入图片描述
按照上图Copy, paste and run the relevant parts of the setup script:里的命令执行:

# 下载PpstgreSQL的rpm包
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装PostgreSQL
sudo yum install -y postgresql12-server# 初始化数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
# 设置开机启动PostgreSQL
sudo systemctl enable postgresql-12
# 启动PostgreSQL
sudo systemctl start postgresql-12

最终执行结果,如下图:
在这里插入图片描述

2、验证

前面已经安装完成,接下来验证下是否安装成功

PostgreSQL不推荐使用root管理,在安装成功postgreSQL后,他默认会给你创建一个用户:postgres,无密码,
可以修改密码:ALTER USER postgres WITH PASSWORD '新密码'

  • 以超级用户身份登录到PostgreSQL数据库:sudo -u postgres psql
  • 查看有哪些库:\l,如下,有三个库,分别是postgres,template0,template1
  • 退出PostgreSQL:\q

在这里插入图片描述
注:先切换到:su postgres,再通过命令进入:psql,也是OK的

三、配置

进入目录: cd /var/lib/pgsql/12/data ,基本配置都在这个目录下:
在这里插入图片描述
从上图可以看到,postgreSQL的核心文件,都属于postgres用户,所以,操作的时候,尽可能的别用root用户,容易出错,尽可能先切换到postgres用户,再去操作。

主要操作的是postgresql.conf和pg_hba.conf。

1、远程连接配置

PostgreSQL默认情况下不支持远程连接的,这个跟MySQL几乎一样

  • MySQL给mysql.user追加用户,一般是采用grant的命令去配置。
  • PostgreSQL要基于配置文件修改,配置用户是否可以远程连接。

1)配置postgresql.conf

postgresql.conf是PostgreSQL的主要配置文件,它包含了许多数据库服务器的全局设置选项。通过修改这个文件,您可以配置数据库服务器的各种参数,如监听地址、端口号、最大连接数、日志记录等。这个文件的修改通常需要重启数据库服务器才能生效。

修改/var/lib/pgsql/12/data/postgresql.conf配置文件,初始配置如下:
在这里插入图片描述
默认情况下,PostgreSQL只允许localhost连接,直接配置为*即可
在这里插入图片描述

2)配置pg_hba.conf

pg_hba.conf是PostgreSQL的身份验证配置文件,它定义了哪些客户端可以连接到数据库服务器以及如何进行身份验证。通过修改这个文件,您可以控制访问数据库的权限,配置不同用户的身份验证方法,以及定义访问控制规则。修改pg_hba.conf文件后,通常需要重新加载配置或重启数据库服务器才能使更改生效。

修改/var/lib/pgsql/12/data/pg_hba.conf配置文件,初始配置如下:
在这里插入图片描述
模板参数说明:

  • type:local代表本地连接,host代表可以指定连接的ADDRESS
  • database:数据库名,如果写all,代表所有库都可以连接
  • user:连接的用户,可以写all,代表所有用户
  • address:代表那些IP地址可以连接
  • method:加密方式,一般直接md5

我们按照上面的模板定义一个,支持远程用户访问,如下:
在这里插入图片描述
注:配置尽量写在前面,因为是从上往下匹配的

3)重启

修改完上面的两个配置文件,都需要重启下:

systemctl restart postgresql-12

2、配置数据库的日志

cat /var/lib/pgsql/12/data/postgresql.conf,里面有关于日志的配置,如下:
在这里插入图片描述
PostgreSQL默认情况下,只保存7天的日志,循环覆盖,默认参数如下:

# 代表日志是开启的。
logging_collector = on
# 日志存放的路径,默认放到当前目录下的log里
log_directory = 'log'
# 日志的文件名,默认是postgresql为前缀,%a表示把星期作为后缀
log_filename = 'postgresql-%a.log'
# 日志文件会被覆盖
log_truncate_on_rotation = on
# 一天一个日志文件
log_rotation_age = 1d
# 日志文件,没有大小限制
log_rotation_size = 0

四、图形化界面

1、pgAdmin

下载地址:https://www.pgadmin.org/download/pgadmin-4-windows/在这里插入图片描述
傻瓜式安装,选择安装目录,一直下一步即可
在这里插入图片描述
打开pgAdmin
在这里插入图片描述
创建一个连接,设置连接名
在这里插入图片描述
设置连接信息
在这里插入图片描述
点击“Save”,就可以postgres的信息,如下:
在这里插入图片描述
如需中文界面,可以在File>Preferences设置
在这里插入图片描述

2、Navicat

它是收费的,连接如下:
在这里插入图片描述
配置连接信息:
在这里插入图片描述

点击确定,就可以postgres的信息,如下
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

半夜三更的,Proxmox VE集群的ceph OSD磁盘挂了

这几天centreon监控频频报警,提示ceph pg 错误,用 ceph health detail 确定不一致的pgs,然后用指令 ceph pg repair pg_num 进行修复,通过查看系统日志,有IO错误,修复一次,能管半天,…

为什么要用雪花算法?

目录 一、能解决什么问题? 二、详解雪花算法 三、如何实现雪花算法? 一、能解决什么问题? 其实就是用来解决分布式ID,随着业务的增长,你的某张表可能要占用很大的物理存储空间,为了解决该问题&#xff…

【05】GeoScene海图或者电子航道图批量出图

出单张000数据参考上一篇博客,如果想同时出多张海图000数据,也是可以实现的。思路如下: 1 批量创建产品 GeoScene海事模块通过ProductDefinitions表和ProductCoverage要素类定义产品和AOI覆盖区,可支持批量导入产品信息和AOI覆盖…

LeetCode 141. 环形链表

给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(…

行为型设计模式-策略模式(Strategy Pattern)

策略模式 策略模式:百度百科中引述为:指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通…

AttributeError: ‘module‘ object has no attribute ‘RAW_OPT‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

定制美化ThingsBoard中的部件库中的Card,HTML,Markdwon部件

thingsbaord中的部件库,有些默认样式并不美观,这时候就需要我们编写一部分CSS进行美化。看一下默认的样式 简单美化后的样式 修改部件配置,在部件的css或者部件的style上 编写css。不光应用于属性卡片部件,其他部件同样适用。 .widget-type-sys-cards-attributes_car…

如何在Eclipse中安装WindowBuilder插件,详解过程

第一步:找到自己安装eclipse的版本,在Help-关于eclipse里面,即Version 第二步:去下面这个网站找到对应的 link(Update Site),这一步很重要,不然版本下载错了之后还得删除WindowBuil…

数据结构--图

树具有灵活性,并且存在许多不同的树的应用,但是就树本身而言有一定的局限性,树只能表示层次关系,比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中,数据元素之间的关系是任意的。 一、图…

10 v-html指令

概述 v-html主要是用来渲染富文本内容,比如评论信息,新闻信息,文章信息等。 v-html是一个特别不安全的指令,因为它会将文本以HTML的显示进行渲染,一旦文本里面包含一些恶意的js代码,可能会导致整个网页发…

YOLOv8加入顶会ICLR2022MobileViT模块

一、原文引入介绍 MOBILEVIT:轻量级、通用型且移动友好的视觉Transformer 论文地址:https://arxiv.org/pdf/2110.02178.pdf MOBILEVIT: LIGHT-WEIGHT, GENERAL-PURPOSE,AND MOBILE-FRIENDLY VISION TRANSFORMER MobileViT是由苹果公司发表在ICLR2022顶会上的一篇文章,这篇文…

机器学习:增强式学习Reinforcement learning

收集有标签数据比较困难的时候同时也不知道什么答案是比较好的时候可以考虑使用强化学习通过互动,机器可以自己知道什么结果是好的,什么结果是坏的 Outline 什么是RL Action就是一个functionEnvironment就是告诉这个Action是好的还是坏的 例子 Space i…