标签:
离线部署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/
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
使用第三方工具进行测试链接