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.mzph.cn/news/230948.shtml

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

相关文章

分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】

分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】 目录 分类预测 | Matlab实现AOA-SVM算术优化支持向量机的数据分类预测【23年新算法】分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现AOA-SVM算术优化支持向量机的数据分类预测…

WebSocket与JavaScript:实现实时获取位置

一、WebSocket介绍 WebSocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP请求相比,WebSocket能够在服务器和客户端之间建立持久连接,实现实时数据传输。WebSocket提供了较低的延迟和高效的数据传输。在实时舆情监测中,它能够实…

5.docker容器及相关命令

docker中的容器实际上就是宿主机中的一个进程 目录 1 创建并启动容器 docker run 1.1 如果没有指定的镜像的话,docker会尝试从源拉取 1.2 给容器起名字 --name 1.3 交互方式启动(-i)与弹出客户端(-t) 1.4 指定端口 -p 1.5 自动分配端口 -P 1.6 后台运…

element plus 日期范围 自定义内容

问题: 按照官网上的自定义内容示例,修改日期选择器没有问题,如果修改日期范围选择器,修改后会丢失日期范围选择时的样式。 解决: 从F12中不难看出日期范围的选择样式来自于.el-date-table-cell 而示例中写的是.cell&…

文件系统和软硬链接(下)

在这里我们首先学习两个新的知识点第一个: 第二个: 下面我们再来理解思考下面的四个问题: 我们首先来解决第一个问题如果新建一个文件Linux系统会做什么呢? 新建文件,系统会做什么 当我们要新建一个文件的时候&#…

Shell三剑客:sed(命令)二

一、插入命令:i(之前) [rootlocalhost ~]# sed -r 2i aaaaaaa passwd.txt root:x:0:0:root:/root:/bin/bash aaaaaaa bin:x:1:1:bin:/bin:/sbin/nologin[rootlocalhost ~]# sed -r 2i aaaaaaa\ > bbb\ > ccc passwd.txt root:x:0:0:r…

PMP中的PDU是什么?PDU常见问题合集

为项目管理领域含金量最高的认证,PMP在国内受到了越来越多人的追捧,在PMP学习备考过程中,很多人都听说过“PDU”这个词,那么这个词是什么意思呢?下面小编就为您详细解读。 一、PDU是什么? PDU&#xff08…

TWS蓝牙耳机的船运模式

TWS蓝牙耳机的船运模式 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, TWS蓝牙耳机的船运模式是指在将耳机从一个地方运送到另一个地方时,…

vue3中ref及reactive的说明

目录 1.响应式说明 2.vue3的ref及reactive的使用 3.reactive响应式失效问题 4.总结 1.响应式说明 vue的响应式是vue框架中的核心概念之一,它是指当数据发生变化时,vue能够自动更新视图。vue2的响应式是基于Object.defineProperty进行实现的。 当你把…

Spring Cloud:Eureka

目录 一、Eureka介绍 1.Eureka的作用 2.总结 二.搭建Eureka服务端步骤 1.导入maven依赖 2.编写启动类,添加EnableEurekaServer注解 3.添加application.yml文件,编写下面的配置: 三.注册Eureka客户端服务提供者(user-servic…

【每日OJ—有效的括号(栈)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1、有效的括号题目: 1.1方法讲解: 1.2代码实现: 总结 前言 世上有两种耀眼的光芒,一种是正在升起的太阳&#…

系统架构设计师教程(五)软件工程基础知识

软件工程基础知识 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型敏捷开发的特点敏捷方法的核心思想主要敏捷方法简介 5.1.4 统一过程模型 (RUP)RUP的生命周期RUP中的核心概念RUP的特点 5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取需求获取的基本步…

CAN静默回环模式测试

本文章主要用于 看自己写的CAN协议代码是否正确 然后因为只有一块板子,不能通信的情况 can.h #ifndef __CAN_H #define __CAN_H#include "head.h"extern FlagStatus can0_receive_flag; extern FlagStatus can0_error_flag; extern can_trasnmit_messag…

HashMap扩容机制详解

目录 1. 扩容的触发条件 2. 扩容的具体步骤 2.1 计算新的容量 2.2 创建新的桶数组 2.3 将元素重新分配到新的桶数组中 2.4 更新容量和阈值 3. 与并发性能的关系 4. 扩容的性能优化 5. 总结 HashMap是Java中常用的数据结构之一,用于存储键值对。在HashMap内…

Electron 打开开发者工具 devtools

Electron 打开开发者工具 devtools 在electron开发的过程中,可以用代码控制打开自带chrome的devtools开发者工具,进而调试渲染教程页面。 平时,我们利用chrome要调试网页的时候,按F12(mac下面是shift花i)…

sql 数据类型注入+tamper

数据类型 数字型 0-9 查询语句: $sql"select * from sy_guestbook where id$i"; 字符型 a-z 中文 标点符号 加入了单引号 查询语句: $sql"select * from sy_guestbook where gTpl$g"; simple order by 16--select * from sy_g…

物联网在能源管理中的应用——青创智通工业物联网解决方案

随着全球能源资源的日益紧张和环境问题的日益突出,能源管理已成为当今社会的重要议题。物联网技术的快速发展为能源管理提供了新的解决方案。本文将介绍物联网在能源管理中的应用及其优势。 一、物联网在能源管理中的应用 1. 智能电网 智能电网是物联网在能源管理中…

vue 高频面试题

vue 高频面试题 0.那你能讲一讲MVVM吗? MVVM是Model-View-ViewModel缩写,也就是把MVC中的Controller演变成ViewModel。Model层代表数据模型,View代表UI组件,ViewModel是View和Model层的桥梁,数据会绑定到viewModel层…

Android 生物识别:构建一个存储用户敏感信息的安全应用

前言 在当今数字时代,随着科技的不断发展,用户敏感信息尤为重要。从指纹到面部识别,再到虹膜扫描,生物识别技术为我们带来了便捷性和安全性。本次将构建一个简易的账户信息应用,运用生物识别技术来提高信息的安全性。…

数据结构之预习作业:排序(v1)

看视频,回答以下问题: 1.系统提到了哪些排序场景?除此之外,你还知道哪些信息系统有排序? 2.什么样的排序方法是稳定的?请举例说明 3.插入类排序分为哪几类? 4.若对n个元素进行直接插入排序&…