Centos 7、windows环境下在线和离线安装PostgreSQL


1. PostgreSQL 在线安装

1.1 安装环境准备

  • 系统环境:Centos 7
  • 数据库:PostgreSQL 11

1.2 下载安装包

安装包的下载地址:http://www.postgresql.org/ftp/source/

可以根据实际的需求选择不同的版本。(本博客以 PostgreSQL 11 为例)

1.3 安装依赖

# 直接执行命令
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

1.4 安装 PostgreSQL

1.4.1 创建安装目录

  1. 在根目录下创建 pgsql 目录
[root@localhost /]# mkdir pgsql
  1. 将安装包postgresql-11.0.tar.gz移动到 pgsql 目录下,并解压
[root@localhost pgsql]# tar -xvf postgresql-11.0.tar.gz
  1. 解压后进入到 postgresql-11.0 目录下,配置安装环境
[root@localhost postgresql-11.0]# ./configure --prefix=/pgsql/postgresql
  1. 安装环境配置结束后,使用makemake intall命令进行安装
[root@localhost postgresql-11.0]# make && make install
  1. 安装结束后创建 postgres 用户和用户组
# 创建用户组
[root@localhost postgresql-11.0]# groupadd postgres
# 创建用户
[root@localhost postgresql-11.0]# useradd -g postgres postgres
# 查看创建情况
[root@localhost postgresql-11.0]# id postgres
# 为用户设置密码(需要数据两次)
[root@localhost postgresql-11.0]# passwd postgres
  1. 创建数据主目录和所有者,需要在/pgsql/postgresql/目录下创建数据主目录
# 进入/pgsql/postgresql/目录
[root@localhost postgresql-11.0]# cd /pgsql/postgresql
# 创建data目录
[root@localhost postgresql]# mkdir data
# 给data目录赋权
[root@localhost postgresql]# chown postgres:postgres data
  1. 配置环境变量,分别修改.bash_profile.bashrc文件,这两个文件在/home/postgres/
  • 进入/home/postgres/目录
# 进入/home/postgres/目录
[root@localhost postgresql]# cd /home/postgres/
  • 修改.bash_profile文件
# 修改.bash_profile文件
[root@localhost postgres]# vim .bash_profile
# 将下面的内容复制到文件文件尾部并保存
export PGHOME=/pgsql/postgresql
export PGDATA=/pgsql/postgresql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin
# 修改结束后,让配置文件生效
[root@localhost postgres]# source .bash_profile
  • 修改.bashrc文件
# 修改`.bashrc`文件
[root@localhost postgres]# vim .bash_profile
# 将下面的内容复制到文件文件尾部并保存
export LD_LIBRARY_PATH=/pgsql/postgresql/lib
# 修改结束后,让配置文件生效
[root@localhost postgres]# source .bashrc
  1. 切换到 postgres 用户,并初始化数据库
# 切换用户
[root@localhost postgres]# su - postgres
# 进入用户目录
[postgres@localhost ~]# cd /home/postgres
# 执行初始化命令
[postgres@localhost postgres]# initdb
  1. 修改配置文件postgresql.confpg_hba.conf
  • 进入到这两个文件所在的目录
[postgres@localhost postgres]# cd /pgsql/postgresql/data/
  • 修改配置文件postgresql.conf
[postgres@localhost data]# vim postgresql.conf

找到如图所示的内容:

listen_addresses = 'localhost'改为listen_addresses = '*',并将前面的注释去掉,让配置能够生效。

  • 修改配置文件pg_hba.conf
[postgres@localhost data]# vim pg_hba.conf

找到如图所示的内容:

IPv4 local connections:下加一行内容如下:

host    all             all             0.0.0.0/0               trust

到这里 PostgreSQL 就安装结束了,使用 postgres 用户通过service postgresql start 即可完成数据库的启动。启动后给出Starting PostgreSQL: ok提示信息就没有问题了。

1.4.2 配置数据库访问

通过psql命令,配置数据库,此时需要切换到 postgres 用户。

[postgres@localhost ~]# psql

## 创建数据访问用户和密码
postgres=# create user root password '123456';
CREATE ROLE
postgres=# ALTER ROLE root SUPERUSER;
ALTER ROLE

## 创建数据库(可以后续用Navicat连接后创建)
postgres=# create database xny;
CREATE DATABASE

## 退出命令行窗口
postgres=# \q

此时就可以用刚才创建的用户名密码登录数据库了。命令格式为:

[postgres@localhost ~]# psql -U postgres -d xny -h 127.0.0.1

注意:这里需要在 postgres 用户下操作,切换到 root 用户是用不了 psql 命令的!!!

1.5 开机自启动

PostgreSQL 的开机自启动脚本位于 PostgreSQL 源码目录的contrib/start-scripts路径下。

  1. 进入源码脚本目录
[root@localhost ~]# cd /pgsql/postgresql-11.0/contrib/start-scripts
  1. 找到文件名为linux的脚本。修改脚本的执行权限
[root@localhost start-scripts]# chmod a+x linux
  1. 将脚本文件复制一份到/etc/init.d/目录下
[root@localhost start-scripts]# cp linux /etc/init.d/postgresql
  1. 修改文件内容,将prefixPGDATA修改为一下内容
prefix=/pgsql/postgresql
PGDATA="/pgsql/postgresql/data"
  1. 设置 postgresql 服务开机自启动
[root@localhost init.d]# chkconfig --add postgresql

1.6 开放端口

1.6.1 开放指定端口

PostgreSQL 的默认端口是 5432,可以通过修改防火墙配置文件实现。执行命令如下:

# 执行命令开放5432端口(如果这里需要开通一个范围内的端口可以写为:--add-port=5000-5432/tcp)
[root@localhost ~]# firewall-cmd --permanent --add-port=5432/tcp
# 重启防火墙生效
[root@localhost ~]# firewall-cmd --reload

这里使用--permanent是持久化,不会因为系统重启或者防火墙重启导致配置丢失。

执行结束后可以通过以下命令查看端口开放情况。

# 查看防火墙开通的所有端口列表
[root@localhost ~]# firewall-cmd --permanent --list-ports
# 查看指定端口开通情况,未开启返回值:no,已开启返回值:yes
[root@localhost ~]# firewall-cmd --query-port=3306/tcp

1.6.2 关闭防火墙

直接执行systemctl stop firewalld命令,关闭防火墙即可,在自己的测试环境可以这样做,但是在生产环境下,这种方式不推荐,存在安全隐患。

2. PostgreSQL 离线安装(RPM)

2.1 下载安装包

这里下载的安装包要和之前不一样,按照下面的步骤来,稍微复杂一点:

首先进入到版本列表页面https://yum.postgresql.org/rpmchart/

选择你要下载的版本,这里需要注意,顶部的一些最新的版本,安装包没有发布,因为不是稳定版,找到当前稳定的发行版本。这里用的是 PostgreSQL 11。如图:

点击RHEL / CentOS 7 - x86_64进入。

再点击PostgreSQL Database Server 11 PGDG进入。

将选中的三个分别下载下来,到这里终于把安装包下载完成了。上传到服务器中。

2.2 安装 PostgreSQL

  • 先安装postgresql11-libs-11.17-1PGDG.rhel7.x86_64.rpm

这个安装包主要是安装 postgresql 的依赖包,在线安装的时候,可以通过yum命令来实现,这里是离线,只能通过手动安装

[root@localhost local]# rpm -ivh postgresql11-libs-11.17-1PGDG.rhel7.x86_64.rpm
  • 再安装postgresql11-11.17-1PGDG.rhel7.x86_64.rpm
[root@localhost local]# rpm -ivh postgresql11-11.17-1PGDG.rhel7.x86_64.rpm
  • 最后安装postgresql11-server-11.17-1PGDG.rhel7.x86_64.rpm
[root@localhost local]# rpm -ivh postgresql11-server-11.17-1PGDG.rhel7.x86_64.rpm

上述安装结束后,会生成一个/usr/pgsql-11目录。

2.3 初始化

执行一下命令对 postgresql 数据库进行初始化

[root@localhost local]# /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK

给出Initializing database ... OK表示初始化成功

2.4 配置信息

主要就是修改配置文件postgresql.confpg_hba.conf

进入到/var/lib/pgsql/11/data目录,然后对应postgresql.confpg_hba.conf文件进行修改,具体修改的内容和在线安装是相同的,不做赘述。

2.5 启动服务

在线安装的时候启动服务直接使用service postgresql start,但是在离线安装后不能使用此命令,如果你使用此命令执行后,系统会给予你提示。

[root@localhost data]# service postgresql start
Redirecting to /bin/systemctl start postgresql.service

提示信息让你用systemctl命令去执行,按照提示来即可,执行一下命令,实现 postgresql 的启动。

[root@localhost data]# systemctl start postgresql-11

注意:这里的命令不能直接抄去使用,因为版本不同,postgresql-后面的版本号不同,这个时候需要根据版本修改!

后续的配置数据库访问、开机自动启动、配置开放端口等步骤就和在线安装相同,参考上述的在线安装步骤即可。

3. postgreSQL 在 windows 环境安装

3.1 网上下载安装包

根据自己的需求下载即可。

下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

3.2 安装

安装过程很简单,直接双击安装包,点击安装一直往后走即可,中间有一步输入密码,这个密码是对应超级管理员postgres设置的,安装结束后,使用navicat连接就是用此用户名加上你设置的密码接口。

3.3 启动服务

安装结束后,服务是自动启动的,无需手动启动,如果没有启动,可以通过ctrl+shift+esc命令,打开任务管理器,找到服务列表,然后找到postgresql-xx或者postgresql-x64-xx服务并右击启动即可。

3.4 注意点

安装前需要了解 postgresql 在不同 windows 版本下的支持情况,我这边在 windows7 安装在高版本就是存在问题,安装到一半一直卡着不动,建议对照你的系统,安装对应版本的 postgresql,避免安装不成,再去更换,就要花费大把的时间啦。具体版本对照可以看官网说明。(目前从官网上看,想在 windows7、8、10 安装,就只能选择 postgresql-10 及一下的版本,后续根据官网实时更新为准)

官网查看地址:https://www.postgresql.org/download/windows/


文章作者: 程序猿洞晓
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 程序猿洞晓 !
评论
 上一篇
BIO、NIO、AIO 的区别分析 BIO、NIO、AIO 的区别分析
在网络编程里面,涉及IO读写的情况非常的多,常用的就是BIO、NIO、AIO,在不同的场景下采用何种IO既能满足效率又能满足性能,且看下文分析。
2023-03-01
下一篇 
MySQL数据库系列(十):MySQL之分库分表 MySQL数据库系列(十):MySQL之分库分表
存储在关系型数据库的数据量会越来越大,系统的访问的压力也会随之增大,如果一个库中的表数据超过了一定的数量,比如说mysql中的表数据达到千万级别,就需要考虑进行分库分表。
2022-10-27
  目录