Linux中摆设PostgreSQL保姆级教程

打印 上一主题 下一主题

主题 1776|帖子 1776|积分 5328

一、版本说明

本文采用的版本号是postgresql
-14.4。
官网资源包下载地点:PostgreSQL: Fil
e Browser
[al
ign=center][img]https://i-bl
og.csdnimg.cn/direct/be510749b93c4e2c9836c553acf7873d.png[/img][/al
ign]
二、安装前的准备

2.1安装依靠

2.1.1安装编译工具

  1. yum instal
  2. l
  3. -y gcc gcc-c++
复制代码
这个命令安装了 GNU 编译器集合(gcc)和 GNU C++ 编译器(gcc-c++)。这些是编译 PostgreSQL 源代码所必需的。

2.1.2安装 readl
ine 开发


  1. yum instal
  2. l
  3. -y readl
  4. ine-devel
复制代码
readl
ine-devel
包提供了额外的头文件和库,用于开发与 readl
ine 库兼容的步伐。readl
ine 是一个库,用于提供命令行编辑和历史功能,PostgreSQL 需要这个库来支持其命令行工具。

2.1.3安装 zl
ib 开发


  1. yum instal
  2. l
  3. -y zl
  4. ib-devel
复制代码
zl
ib-devel
包包含了 zl
ib 压缩库的开发文件,包括头文件和用于链接的库文件。PostgreSQL 利用 zl
ib 来进行数据压缩。
2.2创建postgres用户与用户组

2.2.1创建postgres用户组

  1. groupadd postgres
复制代码

2.2.2创建postgres用户,并添加到postgres用户组

  1. useradd postgres -r -g  postgres
复制代码

[l
ist]
  • useradd postgres:创建一个名为postgres的新用户。
  • -r:指定创建的是一个系统账户。系统账户通常用于运行系统服务,而不是普通用户登录。
  • -g postgres:指定用户的主组为postgres。假如该组不存在,则会创建一个同名的组。
    [/l
    ist] 三、基于压缩包安装(推荐)

    3.1解压压缩包

    前置准备(在根目录下创建softWare文件夹,并进入到softWare文件夹下):
    ①在根目录下创建softWare文件夹
    1. mkdir /softWare
    复制代码
    ②进入到softWare文件夹下
    1. cd /softWare
    复制代码
    3.1.1将压缩包(postgresql
    -14.4.tar.gz)下载到softWare文件夹下


    ①方法一:将准备好的文件上传上去(推荐)
    ②方法二:通过wget下载
    wget命令如下:
    1. wget https://ftp.postgresql
    2. .org/pub/source/v14.4/postgresql
    3. -14.4.tar.gz
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/b7db7423539d4e59bb81c3605f4997ae.png[/img][/al
    ign]

    3.1.2解压

    确保压缩包文件已上传乐成:
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/2b86785f0f654820b551c3781cf36bc5.png[/img][/al
    ign]
    解压命令如下:
    1. tar -zxvf postgresql
    2. -14.4.tar.gz
    复制代码
    3.2编译和安装

    3.2.1创建安装目录(安装在/usr/l
    ocal
    /postgresql
    目录)


    1. mkdir /usr/l
    2. ocal
    3. /postgresql
    复制代码

    3.2.2进入解压的目录下(当前目录/softWare)

    1. cd postgresql
    2. -14.4
    复制代码

    3.2.3指定安装前缀

    1. ./configure --prefix=/usr/l
    2. ocal
    3. /postgresql
    复制代码

    3.2.4构建(编译)

    1. make
    复制代码

    3.2.5安装

    1. make
    2. instal
    3. l
    复制代码
    3.3创建存放postgresql
    数据的目录,初始化数据库并启动


    3.3.1创建数据目录

    1. mkdir /usr/l
    2. ocal
    3. /postgresql
    4. /data
    复制代码

    3.3.2创建日志目录

    1. mkdir /usr/l
    2. ocal
    3. /postgresql
    4. /l
    5. og
    复制代码

    3.3.2修改数据、日志目录的所属用户与用户组均为postgres

    1. chown -R postgres:postgres /usr/l
    2. ocal
    3. /postgresql
    4. /data
    5. chown -R postgres:postgres /usr/l
    6. ocal
    7. /postgresql
    8. /l
    9. og
    复制代码

    3.3.3始化数据库

    ①切换到postgres用户
    1. su postgres
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/25cc64c96e2e4e339536f83e56c9d1e8.png[/img][/al
    ign]
    ②初始化数据库
    1. /usr/l
    2. ocal
    3. /postgresql
    4. /bin/initdb -D /usr/l
    5. ocal
    6. /postgresql
    7. /data
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/455b030e075d465e96a01efc4bdb05b3.png[/img][/al
    ign]
    命令解释
    /usr/l
    ocal
    /postgresql
    /bin/initdb -D /usr/l
    ocal
    /postgresql
    /data
    是一个用于初始化 PostgreSQL 数据库集群的命令。
    命令参数

    [l
    ist]
  • /usr/l
    ocal
    /postgresql
    /bin/initdb: 这是initdb命令的路径,initdb是 PostgreSQL 提供的一个用于创建新的数据库集群的工具。
  • -D /usr/l
    ocal
    /postgresql
    /data:-D参数指定了数据库集群的数据目录,即/usr/l
    ocal
    /postgresql
    /data。这个目录将存储全部数据库文件。
    [/l
    ist] 3.4启动数据库,并将日志打印到pg.l
    og文件上


    1. /usr/l
    2. ocal
    3. /postgresql
    4. /bin/pg_ctl
    5. -D /usr/l
    6. ocal
    7. /postgresql
    8. /data -l
    9. /usr/l
    10. ocal
    11. /postgresql
    12. /l
    13. og/pg.l
    14. og start
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/6f3781e7a6ce4b8186b433856923e656.png[/img][/al
    ign]
    命令解释
    该命令用于启动PostgreSQL数据库服务器。
    命令参数解释

    [l
    ist]
  • -D /usr/l
    ocal
    /postgresql
    /data: 指定PostgreSQL数据目录的路径。这是数据库文件存储的地方。
  • -l
    /usr/l
    ocal
    /postgresql
    /l
    og/pg.l
    og: 指定日志文件的路径,PostgreSQL的启动和运行日志将记录在此文件中。
  • start: 指示pg_ctl
    启动PostgreSQL服务器。
    [/l
    ist] 3.5进入数据库和修改密码

    3.5.1进入数据库

    1. /usr/l
    2. ocal
    3. /postgresql
    4. /bin/psql
    5. -p 5432
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/95d63239bbac48428b9a8b17e29b3029.png[/img][/al
    ign]
    3.5.2检察全部数据库用户

    1. du
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/55b553d3e01244bdadfe8f97019a5966.png[/img][/al
    ign]
    PostgreSQL 数据库安装后,默认的用户名通常是 postgres。这个用户也被称为“超级用户”账户,由于它拥有数据库中的全部权限,而且可以执行任何数据库操作。
    3.5.3修改管理员postgres的密码

    修改管理员postgres的密码为postgres:
    1. ALTER USER postgres WITH PASSWORD 'postgres';
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/48723f7a380244178b3d1cba2830efd3.png[/img][/al
    ign]
    3.6修改配置

    3.6.1设置毗连访问规则(修改配置文件pg_hba.conf,在文件末端添加)

    1. host    al
    2. l
    3.              al
    4. l
    5.               0.0.0.0/0              md5
    复制代码
    ①进入目录
    1. cd /usr/l
    2. ocal
    3. /postgresql
    4. /data/
    复制代码
    ②编辑pg_hba.conf文件
    1. vim pg_hba.conf
    复制代码
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/e4b029e75e3340279e9d579ed25e41ae.png[/img][/al
    ign]
    在PostgreSQL的pg_hba.conf 文件中,“host al
    l
    al
    l
    0.0.0.0/0 md5”是一种毗连访问规则:

    [l
    ist]
  • host:表示这是针对主机毗连的规则范例。
  • al
    l
    (第一个)
    :适用于全部的数据库。
  • al
    l
    (第二个)
    :适用于全部的用户。
  • 0.0.0.0/0:这是一个网络标识。此中“0.0.0.0”为IP地点,“/0”为子网掩码,表示允许来自任何IP地点的主机毗连。
  • md5:这是一种认证方法。利用md5意味着客户端毗连数据库时需要提供颠末md5加密后的密码进行身份验证。与“trust”(信任模式不需要密码)相比,这种方式更安全,适用于需要一定安全保障的场景,如生产环境或对外提供服务且需要限制访问权限的数据库环境。
    [/l
    ist] 3.6.2设置PostgreSQL数据库服务器监听全部可用的网络接口上的传入毗连请求

    ①进入目录
    1. cd /usr/l
    2. ocal
    3. /postgresql
    4. /data/
    复制代码
    ②编辑postgresql
    .conf文件
    1. vim postgresql
    2. .conf
    复制代码
    修改l
    isten_address为任意ip ,即 l
    isten_addresses = ‘*’
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/fbc3eab4dbab4e5694dd0812095bdf26.png[/img][/al
    ign]
    假如此步骤报错,切换到root用户执行
    3.6.3重启数据库

    1. /usr/l
    2. ocal
    3. /postgresql
    4. /bin/pg_ctl
    5. -D /usr/l
    6. ocal
    7. /postgresql
    8. /data -l
    9. /usr/l
    10. ocal
    11. /postgresql
    12. /l
    13. og/pg.l
    14. og restart
    复制代码
    3.6.4测试毗连

    对外访问,需要开通端口
    [al
    ign=center][img]https://i-bl
    og.csdnimg.cn/direct/8e8f38f02e3c4d998c939c731cfd15ae.png[/img][/al
    ign]
    3.7常用命令

    3.7.1l
    inux中命令行中利用的psql
    命令


    参数
    参数寄义
    -h
    毗连数据库服务器的IP
    -p
    数据库服务器的端口号
    -U
    毗连数据库服务器时利用数据库用户
    -w
    毗连服务器时不需要输入用户密码(默认不输入用户密码)
    -W
    毗连服务器时需要输入用户密码
    -d
    指定要毗连的数据库(默认毗连postgres数据库)
    -c
    执行单一的SQL命令
    -f
    执行sql
    脚本文件
    -V
    输出版本信息
    1. --连接本地数据库,端口号为5432,使用postgres用户,连接test数据库
    2. ./psql
    3. -h 127.0.0.1 -p 5432 -U postgres
    4. -d test
    5. --执行sql
    6. 脚本文件/root/pg.sql
    7. ./psql
    8. -h 127.0.0.1 -p 5432 -U postgres
    9. -d test -f /root/pg.sql
    10. --执行SQL语句
    11. ./psql
    12. -h 127.0.0.1 -p 5432 -U postgres
    13. -d test -c "sql
    14. _one;sql
    15. _two;"
    16. --查看数据库版本
    17. ./psql
    18. -V
    复制代码

    3.7.2pg命令行中利用的psql
    命令


    命令
    寄义
    h
    检察sql
    语法
    l

    列出全部数据库
    dn
    列出全部schema(模式)
    db
    表现全部表空间(相当于一个目录,表放在表空间中)
    d
    检察当前schema中全部的表、视图、序列
    dt

    只表现匹配的表
    di
    只表现匹配的索引
    ds
    只表现匹配的序列
    dv
    只表现匹配的视图
    df
    只表现匹配的函数
    sf
    检察指定的函数界说
    du
    列出数据库中全部用户
    dp
    表现表的分配情况
    c
    切换数据库
    q
    退出pg命令行
    1. --查看所有数据库
    2. postgres=# l
    3. --显示pg内部的函数acos
    4. postgres=# df acos
    5. --查询acos函数的函数定义
    6. postgres=# sf acos
    7. --退出pg命令行
    8. postgres=# q
    复制代码

    3.7.3实际常用命令总结

    ①进入数据库(在bin目录下,即/usr/l
    ocal
    /postgresql
    /bin)

    切换到postgres用户
    1. su postgres
    复制代码
    进入数据库(默认毗连postgres数据库)
    1. ./psql
    2. -h 127.0.0.1 -p 5432 -U postgres
    复制代码

    ②查询全部的数据库
    1. l
    复制代码

    ③检察当前地点的数据库
    1. SELECT current_database();
    复制代码

    ④创建数据库
    1. CREATE DATABASE "数据库名";
    复制代码

    ⑤切换数据库
    1. c "数据库名"
    复制代码

    ⑥查询当前数据库全部的表
    1. dt
    复制代码
    ⑦启动、重启、关闭数据库
    切换postgres用户
    1. /usr/l
    2. ocal
    3. /postgresql
    4. /bin/pg_ctl
    5. -D /usr/l
    6. ocal
    7. /postgresql
    8. /data -l
    9. /usr/l
    10. ocal
    11. /postgresql
    12. /l
    13. og/pg.l
    14. og start
    15. |restart|stop
    复制代码
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    举报

    0 个回复

    倒序浏览

    快速回复

    您需要登录后才可以回帖 登录 or 立即注册

    本版积分规则

    吴旭华

    论坛元老
    这个人很懒什么都没写!
    快速回复 返回顶部 返回列表