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

news/2024/7/9 23:20:25 标签: 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要基于配置文件修改,配置用户是否可以远程连接。

postgresqlconf_77">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.niftyadmin.cn/n/5278232.html

相关文章

golang单测

goland自动生成 鼠标移动到函数名处右击鼠标点击:生成点击:函数测试 func TestGetFieldIds(t *testing.T) {type args struct {fieldIdsStr string}tests : []struct {name stringargs argswantResult []uint}{// TODO: Add test cases.}f…

Sirius:一款功能强大的通用漏洞扫描工具

关于Sirius Sirius是一款功能强大的通用漏洞扫描工具,该工具可以帮助广大研究人员在大多数场景下识别和验证应用程序中存在的安全漏洞。 现如今,信息安全社区仍然是收集网络安全情报数据最佳且最有利的来源,而且社区本身的表现经常会优于商…

Java学习正则表达式

正则表达式:一些具有特殊含义字符的集合。 它指定了字符串的匹配规则 使用String类的matches(String regex)方法判断字符串是否匹配指定的正则表达式。 public boolean matches( String regex ) 比如: String s"lxxhdpu163.com"; boolean b…

【自用】Ubuntu20.4从Vivado到ddr200t运行HelloWorld

【自用】Ubuntu20.4新系统从输入法到ddr200t运行HelloWorld 一、编辑bashrc二、Vivado2022.2安装三、编译蜂鸟E203自测样例1. 环境准备2. 下载e203_hbirdv2工程文件3. 尝试编译自测案例1. 安装RISC-V GNU工具链2. 编译测试样例 4. 用vivado为FPGA生成mcs文件1.准备RTL2.生成bit…

IOS开发问题记录

1. xcode上传app store connect后testflight没有可构建版本的原因 查看你的邮箱, 里面有原因提示 一般为使用了某些权限, 但是plist没有声明 2. xcode 修改display name后名字并没有改变 原因是并没有修改到plist的CFBundleDisplayName的字段 将CFBundleDisplayName的值修改…

springboot项目0-1之mybatis

文章目录 概述优缺点优点缺点 配置引入安装包资源配置基于YAML格式来进行配置基于xml配置文件配置基于注解进行配置 mapper与xml严格匹配 基础操作 一文弄懂mybatis 概述 Apache下的一个开源项目 用于操作数据库 基于java语言的持久层框架,通过XML描述符或注解将对…

Electron Vite打包后,部分图标未显示的解决方案

背景 这个问题,弄了一晚上,头都大了,找了一堆博客也没解决。主要参考这个:https://blog.csdn.net/m0_73845616/article/details/129741099。 下面讲一下我的解决方案。 解决方案 上面链接里的方法,我采用第二、三个都…

【大数据面试】MySQL面试题与答案

数据库中的事务是什么,MySQL中是怎么实现的 MySQL事务的特性? 数据库事务的隔离级别?解决了什么问题?默认事务隔离级别? 脏读,幻读,不可重复读的定义 MySQL怎么实现可重复读? 数据库第三范式和第四范式区别? MySQL的存储引擎? …