标签:

离线部署Postgresql,centos下部署Postgresql 

一、环境要求

测试环境部署信息

操作系统:CentOS 7.8 (cat /etc/redhat-release)

postgresql版本: 13.3

二、准备工作

2.1.安装readline

以下命令是在有对应离线文件目录下执行

命令:rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
命令:rpm -ivh readline-6.2-11.el7.x86_64.rpm
命令:rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm

对应的离线包可到网站下载

网址:点我跳转  在界面中Ctrl+F进行搜索相应的包

2.2.安装zlib-devel

以下命令是在有对应离线文件目录下执行

命令:rpm -ivh zlib-1.2.7-18.el7.x86_64.rpm   //一般情况下系统默认安装了
命令:rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

对应的离线包可到网站下载

网址:点我跳转  在界面中Ctrl+F进行搜索相应的包

三、安装postgresql

3.1.将postgresql的包上传到(/tmp)文件夹中进行解压

postgresql的离线包到官方网站下载:https://www.postgresql.org/

命令:tar -xzvf postgresql-13.3.tar.gz

3.2.创建postgresql的安装目录

PS:请注意你的创建路径,可以是不同的路径后面会用到

PS:请注意你的创建路径,可以是不同的路径后面会用到

PS:请注意你的创建路径,可以是不同的路径后面会用到

命令:mkdir /data     //先在跟目录下创建data目录
命令:mkdir /data/postgresql   //data目录下创建postgresql

3.3.生成makefile

PS:需要到解压的目录下操作

命令:./configure --prefix=/data/postgresql   //需要到解压的目录下操作

3.4.编译安装

PS:在解压的目录下执行

命令:make && make install     //在解压的目录下执行

3.5.安装工具集

PS:进入到解压后的目录下的contrib文件夹

命令:cd /tmp/postgresql-13.3/contrib  //进入到解压后的目录下的contrib文件夹
命令:make && make install

3.6.创建postgresql用户

命令:groupadd postgres
命令:useradd -g postgres postgres

为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为了使用postgresql添加一个用户postgres:

也可以是其他用户名,但是习惯上大家都是创建postgres用户作为数据库的超级用户。

初始化数据库时,就以这个用户作为数据库的超级用户

3.7.修改data目录的用户为postgres

命令:cd /data/postgresql      //进入到安装的postgresql目录
命令:mkdir data     //在postgresql目录下创建data文件夹
命令:chown -R postgres:postgres /data/postgresql/data

3.8.修改环境变量

命令:su - postgres 
命令:vim /home/postgres/.bash_profile

        

添加环境变量:

export PGHOME=/data/postgresql
export PGDATA=/data/postgresql/data
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm  -i'
alias ll='ls -lh'

保存后使环境变量立即生效,否则initdb命令会找不到:

命令:source /home/postgres/.bash_profile

3.9.初始化数据库

命令:initdb -D /data/postgresql/data/

centos license centos license离线_表空间

3.10.启动数据库

命令:su - postgres    //使用postgres用户
命令:cd /home/postgres  //logfile需要在postgres的用户目录下创建
命令:pg_ctl -D /data/postgresql/data/ -l logfile start

查看5432端口是否已经启动

命令:netstat -nltp|grep 5432

3.11.添加postgresql至服务

命令:cd /tmp/postgresql-13.3/contrib/start-scripts/
命令:chmod a+x linux
命令:cp linux /etc/init.d/postgresql

此时就可以使用 /etc/init.d/postgresql stop 来停止postgresql

也可以使用:service postgresql start 来启动postgresql

修改postgresql脚本中prefix和PGDATA的内容

附带命令:pg_ctl start 启动服务

                  pg_ctl restart 重启服务

chkconfig --add postgresql //设置服务开机启动

四、配置数据库允许连接

命令:su root //切换至root用户下

设置监听整个网络,查找“listen_addresses ”字符串

命令:vim /data/postgresql/data/postgresql.conf     //#修改为如下:
        listen_addresses = '*'

配置连接方式

PS:添加的信息为网段信息,非服务器的IP信息

命令:vim /data/postgresql/data/pg_hba.conf   //#添加信息为如下:
host    all             all             192.168.2.0/24           md5

五、创建数据库

5.1.创建用户

命令:su - postgres    //使用postgres操作系统用户
命令: psql //进入数据库
数据库命令:create role 用户名 password '密码' 权限;

示例

例如:创建一个用户名为test ,密码为:'pg@0123',权限为createdb login的用户
数据库命令:create role test password 'pg@0123' createdb login;
查询所有用户
数据库命令:select rolname,oid from pg_roles;

5.2.创建表空间

数据库命令:create tablespace 表空间 OWNER 表空间所有者 LOCATION '文件位置';

示例

示例:创建了一个表空间名为TBS_TEST,所有者为test,文件位置为/home/postgres的表空间
数据库命令:create tablespace TBS_TEST OWNER test LOCATION '/home/postgres';
注意:文件位置是在pod内的路径,建议使用/home/postgres即可,无需修改

5.3.创建库

数据库命令:create  database 库名 tablespace 表空间名;

示例

示例:创建了一个名字为test,使用tbs_test表空间的库
create  database test tablespace tbs_test;
查看所有库
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;

5.4.其他授权操作

表空间授权
数据库命令:GRANT all ON TABLESPACE 表空间名 TO 用户名;
示例:授予test用户,TBS_TEST表空间所有权限
数据库命令: GRANT all ON TABLESPACE TBS_TEST TO test;

库授权
数据库命令:GRANT all ON DATABASE 库名 TO 用户名;
示例:授予test用户,TBS_TEST库所有权限
数据库命令:GRANT all ON DATABASE TBS_TEST TO test;

六、链接数据库

如果服务器是开启防火墙状态的请注意 将数据库的端口开放否则链接会报错

命令:firewall-cmd --add-service=postgresql --permanent
# 5432为postgresql端口
命令:firewall-cmd --zone=public --add-port=5432/tcp --permanent
命令:firewall-cmd --reload
# 查看防火墙开放端口
firewall-cmd --zone=public --list-ports

使用第三方工具进行测试链接

centos license centos license离线_postgresql_02

结束