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 创建安装目录
- 在根目录下创建 pgsql 目录
[root@localhost /]# mkdir pgsql
- 将安装包
postgresql-11.0.tar.gz
移动到 pgsql 目录下,并解压
[root@localhost pgsql]# tar -xvf postgresql-11.0.tar.gz
- 解压后进入到 postgresql-11.0 目录下,配置安装环境
[root@localhost postgresql-11.0]# ./configure --prefix=/pgsql/postgresql
- 安装环境配置结束后,使用
make
和make intall
命令进行安装
[root@localhost postgresql-11.0]# make && make install
- 安装结束后创建 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
- 创建数据主目录和所有者,需要在
/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
- 配置环境变量,分别修改
.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
- 切换到 postgres 用户,并初始化数据库
# 切换用户
[root@localhost postgres]# su - postgres
# 进入用户目录
[postgres@localhost ~]# cd /home/postgres
# 执行初始化命令
[postgres@localhost postgres]# initdb
- 修改配置文件
postgresql.conf
和pg_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
路径下。
- 进入源码脚本目录
[root@localhost ~]# cd /pgsql/postgresql-11.0/contrib/start-scripts
- 找到文件名为
linux
的脚本。修改脚本的执行权限
[root@localhost start-scripts]# chmod a+x linux
- 将脚本文件复制一份到
/etc/init.d/
目录下
[root@localhost start-scripts]# cp linux /etc/init.d/postgresql
- 修改文件内容,将
prefix
和PGDATA
修改为一下内容
prefix=/pgsql/postgresql
PGDATA="/pgsql/postgresql/data"
- 设置 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.conf
和pg_hba.conf
进入到/var/lib/pgsql/11/data
目录,然后对应postgresql.conf
和pg_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 及一下的版本,后续根据官网实时更新为准)