目录
1、概述
公司要求使用银河麒麟V10 SP3运行PostgreSQL,之前公司使用的是32位的postgresql,安装在Linux上,升级银河麒麟V10 SP3后无法运行,所以出个方案进行升级。本文档使用PostgreSQL源码编译,依赖通过联网下载的形式安装部署。
2、条件准备
2.1.下载安装包
1、需要提前下载PostgreSQL源码压缩包,本文档使用PostgreSQL 12.19
https://ftp.postgresql.org/pub/source/v12.19/postgresql-12.19.tar.gz
3、开始安装
3.1.下载依赖
用yum的依赖库下载
yum install -y openssl openssl-devel pam pam-devel libxml2 libxml2-devel libxslt libxslt-devel perl perl-devel perl-ExtUtils-Embed readline readline-devel zlib zlib-devel gettext gettext-devel bison flex gcc gcc-c++ readline-devel
如果无法下载可以根据命令来排查问题。
大概率是下面的文件配置错误(文件名根据实际进行修改)
vi /etc/yum.repos.d/kylin_x86_64.repo
如果想下载离线包可以去下方的网站搜素
Search the RPM repository on rpmfind.net
3.2.上传安装包
将2.1.下载的安装包上传到服务器上
3.3.安装数据库
解压安装包
tar -zvxf postgresql-12.19.tar.gz
进入到解压的文件夹中
cd /home/postgresql-12.19/
创建软件储存目录
mkdir -p /opt/postgresql-12.19/
进行安装,我这里安装的目录是/opt/postgresql-12.19/
./configure --prefix=/opt/postgresql-12.19/ &&make &&make install
如果命令窗中提示“Postgresql installation complete.”,则表示安装成功。
如果出现“readline library”等相关错误,则需要进行依赖库安装
可以运行命令进行依赖安装,XXX替换成缺失的依赖名称
yum install -y XXX
3.4.配置环境变量
安装好后需要配置一下环境变量
编辑profile文件
vim /etc/profile
将下方的内容添加到最下方(光标移动到最下方,按i进行编辑,编辑后按ESC,:wq进行保存,全程英文输入法输入),PGHOME、PGDATA根据实际情况进行修改
export PGHOME=/opt/postgresql-12.19 --数据库安装位置(记得删掉注释)
export PGDATA=/opt/postgresql-12.19/data --数据库数据所在位置(记得删掉注释)
export PATH=$PGHOME/bin:$PATH
export LANG=en_US.utf8
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
保存后使用下面命令使其生效
source /etc/profile
3.5.创建用户
启动和初始化PostgreSQL需要建立一个用户 建议使用postgres
useradd postgres
3.6.创建数据目录
创建目录,和环境变量配置的数据存放目录(PGDATA)相同
mkdir -p /opt/postgresql-12.19/data
赋予用户目录权限,将文件夹授权给postgres
chown postgres:postgres /opt/postgresql-12.19
chown postgres:postgres /opt/postgresql-12.19/data
3.7.初始化数据库
切换用户到postgres
su - postgres
执行命令对数据库进行初始化
/opt/postgresql-12.19/bin/initdb -D /opt/postgresql-12.19/data
3.8.数据库连接配置
将数据库监听地址改成所有,编辑postgresql.conf文件
vim /opt/postgresql-12.19/data/postgresql.conf
将listen_addresses=配置改成如下所示,并保存
修改pg_hba.conf允许远程连接,运行命令,打开
vim /opt/postgresql-12.19/data/pg_hba.conf
如图位置新增一条,即可支持远程连接
host all all 0.0.0.0/0 md5
记得关闭防火墙
systemctl stop firewalld
4.启动数据库服务
执行下方两个命令进行启动数据库
/opt/postgresql-12.19/bin/pg_ctl -D /opt/postgresql-12.19/data/ -l logfile start
启动后看端口使用情况运行下方命令,postgres默认端口为5432
netstat -anp | grep 5432
如果服务列表不为空,说明启动成功。
5.初始化数据库用户
使用命令切换到postgres用户,如果用户已经是postrges,则直接进行下一步操作
su - postgres
进入到用户后登录数据库,运行命令,设置用户初始化密码
psql -U postgres -d postgres -c "ALTER USER postgres WITH PASSWORD '你的密码';"
如果提示psql命令或者文件找不到,进入到安装目录运行命令
cd /opt/postgresql-12.19/bin
./psql -U postgres -d postgres -c "ALTER USER postgres WITH PASSWORD '你的密码';"
6.将数据库注册成服务
切换到root用户,找到tar包解压后postgresql的linux文件
su root
cd /home/postgresql-12.19/contrib/start-scripts/
复制linux文件到init.d目录下,并命名成postgres
cp linux /etc/init.d/postgresql
修改/etc/init.d/postgresql文件并赋予权限
vim /etc/init.d/postgresql
prefix 改成postgresql安装的路径
PGDATA 改成postgresql存放数据的路径,按自己的路径修改
PGUSER postgresql的用户,按自己创建的用户修改
PGLOG postgresql存放的日志,按自己的路径修改
然后保存
使用命令给postgres用户授权
chmod +x /etc/init.d/postgresql
就可以使用命令对postgres进行控制
#停止
service postgresql stop
#启动
service postgresql start
#重启
service postgresql restart
7、将数据库设置开机自启
还没写,下次一定
chkconfig postgres on
chkconfig --list
内容借鉴于Postgresql-12.5 安装及配置 -银河麒麟V10服务器版本_离线麒麟v10 部署 pg数据库-CSDN博客
银河麒麟V10-ARM架构-postgresql安装与部署指南_kylinv10 postgresql-CSDN博客