Linux中部署PostgreSQL保姆级教程

打印 上一主题 下一主题

主题 1023|帖子 1023|积分 3069

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
一、版本说明

        本文接纳的版本号是postgresql-14.4。
        官网资源包下载地址:PostgreSQL: File Browser


二、安装前的准备

2.1安装依靠

2.1.1安装编译工具

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

2.1.2安装 readline 开发库

  1. yum install -y readline-devel
复制代码
readline-devel 包提供了额外的头文件和库,用于开发与 readline 库兼容的程序。readline 是一个库,用于提供命令行编辑和历史功能,PostgreSQL 必要这个库来支持其命令行工具。

2.1.3安装 zlib 开发库

  1. yum install -y zlib-devel
复制代码
zlib-devel 包包含了 zlib 压缩库的开发文件,包括头文件和用于链接的库文件。PostgreSQL 使用 zlib 来举行数据压缩。

2.2创建postgres用户与用户组

2.2.1创建postgres用户组

  1. groupadd postgres
复制代码

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

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


  • useradd postgres:创建一个名为 postgres 的新用户。
  • -r:指定创建的是一个系统账户。系统账户通常用于运行系统服务,而不是平凡用户登录。
  • -g postgres:指定用户的主组为 postgres。假如该组不存在,则会创建一个同名的组。

三、基于压缩包安装(推荐)

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.org/pub/source/v14.4/postgresql-14.4.tar.gz
复制代码


3.1.2解压

确保压缩包文件已上传成功:

解压命令如下:
  1. tar -zxvf postgresql-14.4.tar.gz
复制代码

3.2编译和安装

3.2.1创建安装目次(安装在/usr/local/postgresql目次)

  1. mkdir /usr/local/postgresql
复制代码

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

  1. cd postgresql-14.4
复制代码

3.2.3指定安装前缀

  1. ./configure --prefix=/usr/local/postgresql
复制代码

3.2.4构建(编译)

  1. make
复制代码

3.2.5安装

  1. make install
复制代码

3.3创建存放postgresql数据的目次,初始化数据库并启动

3.3.1创建数据目次

  1. mkdir /usr/local/postgresql/data
复制代码

3.3.2创建日记目次

  1. mkdir /usr/local/postgresql/log
复制代码

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

  1. chown -R postgres:postgres /usr/local/postgresql/data
复制代码
  1. chown -R postgres:postgres /usr/local/postgresql/log
复制代码

3.3.3始化数据库

①切换到postgres用户
  1. su postgres
复制代码

②初始化数据库
  1. /usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data
复制代码

命令解释
/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data 是一个用于初始化 PostgreSQL 数据库集群的命令。
命令参数


  • /usr/local/postgresql/bin/initdb: 这是 initdb 命令的路径,initdb 是 PostgreSQL 提供的一个用于创建新的数据库集群的工具。
  • -D /usr/local/postgresql/data: -D 参数指定了数据库集群的数据目次,即 /usr/local/postgresql/data。这个目次将存储全部数据库文件。

3.4启动数据库,并将日记打印到pg.log文件上

  1. /usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/log/pg.log start
复制代码

命令解释
该命令用于启动PostgreSQL数据库服务器。
命令参数解释


  • -D /usr/local/postgresql/data: 指定PostgreSQL数据目次的路径。这是数据库文件存储的地方。
  • -l /usr/local/postgresql/log/pg.log: 指定日记文件的路径,PostgreSQL的启动和运行日记将记载在此文件中。
  • start: 指示pg_ctl启动PostgreSQL服务器。

3.5进入数据库和修改密码

3.5.1进入数据库

  1. /usr/local/postgresql/bin/psql -p 5432
复制代码


3.5.2查看全部数据库用户

  1. \du
复制代码

PostgreSQL 数据库安装后,默认的用户名通常是 postgres。这个用户也被称为“超级用户”账户,由于它拥有数据库中的全部权限,并且可以实行任何数据库利用。

3.5.3修改管理员postgres的密码

修改管理员postgres的密码为postgres:
  1. ALTER USER postgres WITH PASSWORD 'postgres';
复制代码


3.6修改配置

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

  1. host    all             all              0.0.0.0/0              md5
复制代码
①进入目次
  1. cd /usr/local/postgresql/data/
复制代码
 ②编辑pg_hba.conf文件
  1. vim pg_hba.conf
复制代码

在PostgreSQL的pg_hba.conf 文件中,“host all all 0.0.0.0/0 md5”是一种连接访问规则:


  • host:表示这是针对主机连接的规则范例。
  • all(第一个):实用于全部的数据库。
  • all(第二个):实用于全部的用户。
  • 0.0.0.0/0:这是一个网络标识。此中“0.0.0.0”为IP地址,“/0”为子网掩码,表示答应来自任何IP地址的主机连接。
  • md5:这是一种认证方法。使用md5意味着客户端连接数据库时必要提供经过md5加密后的密码举行身份验证。与“trust”(信托模式不必要密码)相比,这种方式更安全,实用于必要一定安全保障的场景,如生产环境或对外提供服务且必要限定访问权限的数据库环境。

3.6.2设置PostgreSQL数据库服务器监听全部可用的网络接口上的传入连接请求

①进入目次
  1. cd /usr/local/postgresql/data/
复制代码
②编辑postgresql.conf文件
  1. vim postgresql.conf
复制代码
修改listen_address为恣意ip ,即 listen_addresses = '*'

假如此步骤报错,切换到root用户实行

3.6.3重启数据库

  1. /usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/log/pg.log restart
复制代码

3.6.4测试连接

对外访问,必要开通端口


 3.7常用命令

3.7.1linux中命令行中使用的psql命令

参数参数寄义-h连接数据库服务器的IP-p数据库服务器的端口号-U连接数据库服务器时使用数据库用户-w连接服务器时不必要输入用户密码(默认不输入用户密码)-W连接服务器时必要输入用户密码-d指定要连接的数据库(默认连接postgres数据库)-c实行单一的SQL命令-f实行sql脚本文件-V输出版本信息
  1. --连接本地数据库,端口号为5432,使用postgres用户,连接test数据库
  2. ./psql -h 127.0.0.1 -p 5432 -U postgres -d test
  3. --执行sql脚本文件/root/pg.sql
  4. ./psql -h 127.0.0.1 -p 5432 -U postgres -d test -f /root/pg.sql
  5. --执行SQL语句
  6. ./psql -h 127.0.0.1 -p 5432 -U postgres -d test -c "sql_one;sql_two;"
  7. --查看数据库版本
  8. ./psql -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/local/postgresql/bin)
切换到postgres用户
  1. su postgres
复制代码
进入数据库(默认连接postgres数据库)
  1. ./psql -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/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/log/pg.log start|restart|stop
复制代码








免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

干翻全岛蛙蛙

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