银河麒麟V10使用编译安装postgresql/postgis完整部署

一、安装环境

虚拟机:银河麒麟V10

posgresql版本:postgresql-13.1

下载postgresql最新版:http://www.postgresql.org/ftp/source/

二、使用make方法安装posgresql

1、首先下载源码postgres:

[root@localhost ~]# wget http://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2  # 用时21分钟

2、解压  

[root@localhost ~]# tar xjvf postgresql-13.1.tar.bz2

3、进入文件夹

[root@localhost ~]# cd postgresql-13.1/

 

4、 创建安装路径,一般我们都是安装在/opt/文件夹下面

这里一定要用root用户去创建
[root@localhost postgresql-13.1]# sudo su
[root@localhost postgresql-13.1]# mkdir -p /opt/pgsql-13.1
创建好后一定是root:root 用户:用户组

5、配置

[root@localhost postgresql-13.1]# ./configure --prefix=/opt/pgsql-13.1 --without-readline
View Code

6、编译

[root@localhost postgresql-13.1]# make -j8  # 安装时间大约3分钟

出现successfully表示安装成功

7、安装

[root@localhost postgresql-13.1]# make install

出现:PostgreSQL installation complete.安装完成

三、创建用户postgres,用来启动postgres服务。

1、创建postgres用户

[root@localhost postgresql-13.1]# sudo su  #登录root用户,如果是ubuntu桌面版的话 su -i 
[root@localhost postgresql-13.1]# useradd postgres  #添加用户 
[root@localhost postgresql-13.1]# passwd postgres   #添加密码 我的密码"`1234qwert"

2、用户创建好以后就可以设置刚才/opt/pgsql-13.1的用户属性了

#首先创建一个文件夹,作为数据库的数据存储点
sudo su
mkdir /opt/pgsql-13.1/data
chown -R postgres /opt/pgsql-13.1

 

3、设置环境变量

[root@localhost ~]# sudo su
[root@localhost ~]# 

在末尾打开后增加如下信息:i-->插入功能

PATH=$PATH:/opt/pgsql-13.1/bin
export PATH
LD_LIBRARY_PATH=/opt/pgsql-13.1/lib
export LD_LIBRARY_PATH
export PGDATA=/opt/pgsql-13.1/data

 

esc-->:wq退出

4、添加后source一下

[root@localhost ~]# source /etc/profile

5、进入postgres

[root@localhost ~]# su - postgres

注意,这时候命令行只有一个$符号,我们只需要输入bash后就可以了

bash
cd /
ls -l

postgres --version  # 查看postgres版本

[root@localhost ~]# sudo su
[root@localhost ~]# vim /etc/profile
#设置数据库存放数据路径的全局变量
export PGDATA=/home/kylin/postgres/data

#或者 initdb -D /home/kylin/postgres/data
#如果export了就不用加-D xxx了:initdb /home/kylin/postgres/data
initdb 
pg_ctl start
#启动后postgres默认有一个用户postgres超级用户,因为它的密码是随机的,所以我们无法通过密码在其它用户上登录,所以必须通过postgres用户来登录超级用户,然后再创建一个数据库用户和数据库
psql -h 127.0.0.1

如下登录进来了

postgres@kylin-D2000:/opt/pgsql-13.1$ psql -h 127.0.0.1
psql (12.9 (Ubuntu 12.9-0kylin0.20.04.1k1), 服务器 13.1)
警告:psql 主版本12,服务器主版本为13.
一些psql功能可能无法正常使用.
输入 "help" 来获取帮助信息.
postgres=#

到这里以后既可以创建数据库用户和database了。

创建用户
postgres=# create user username with password '****';
CREATE ROLE
postgres=#

//修改用户名
alter user name rename to new naem
//修改密码
alter user name with password '123456';

创建数据库

postgres=# create database dbtest owner username; -- 创建数据库指定所属者
CREATE DATABASE
postgres=#

将数据库得权限,全部赋给某个用户

postgres=# grant all on database dbtest to username; -- 将dbtest所有权限赋值给username
GRANT
postgres=#

创建好之后就可退出

postgres=#\q

前面这么多工作主要为接下来做准备,其他linux用户登录数据库

psql -h 10.10.10.10 -U user -d postgres -p 5432
-h:数据库IP
-U:登录用户
-d:登录的数据库
-p:登录端口

这样你就可以在Linux下用你常用的Linux去登录数据库了

kylin@kylin-D2000:~$ psql -U shenyan -d shenyan_f -h 127.0.0.1
psql (12.9 (Ubuntu 12.9-0kylin0.20.04.1k1), 服务器 13.1)
警告:psql 主版本12,服务器主版本为13.
一些psql功能可能无法正常使用.
输入 "help" 来获取帮助信息.

shenyan_f=>

注意:
值得注意的是posgres数据库服务在启动的时候必须是Linux postgres用户,这是postgres数据库默认的,所以你不去创建这个用户,postgres服务自己也会去创建,他创建后密码是随机生成的,我们是无法知道的,所以也无法登录postgres,所以还是我们自己手动去创建。

如果我们用命令行安装了postgres后。默认postgres会启动,同时它自己会建立

如果你嫌麻烦直接采用docker

[root@localhost ~]# docker pull postgres # 载入镜像

[root@localhost ~]# docker run \
--name demo \
--privileged=true \
-e TZ='Asia/Shanghai' \
-e POSTGRES_USER=koji \
-e POSTGRES_DB=koji \
-e POSTGRES_PASSWORD=123456 \
-e PGDATA=/tmp/ \
-v /root/data:/tmp/ \
-p 5432:5432 \
-v /root/pem/psql-run:/docker-entrypoint-initdb.d \
-d \
postgres

然后就可以登录数据库了,登录后创建自己的数据库用户和数据库就可以了。
因为我们已经映射了data,所以只要/root/data在,即使数据库docker删除了,下次启动后,数据还是有的。

2、编译安装postgresql v10.0

1、 安装软件准备基于此情况,我们首先需要准备相应的安装包内容,下载地址参照 postgresql v10.0下载地址:https://www.postgresql.org/ftp/source/v10.0/

postgresql源码编译时的 ./configure 需要此软件,安装方式。右键选择在终端打开

[root@localhost ~]# yum install readline-devel

最好安装下openssl-devel,因为安装timescaledb时会提示这个未安装(一般情况也可以不安装)

[root@localhost ~]# yum install openssl-devel

查看我的postgers版本:rpm -qa | grep postgres

2、安装前可以先进行用户以及用户组的配置,方便后面进行授权(通过编译安装也需要,后续步骤会体现)。用户配置

[root@localhost ~]# groupadd postgres    # 新增用户组 
[root@localhost ~]# useradd -g postgres postgres  # 创建用户组内用户 

[root@localhost ~]# passwd postgres # 修改用户密码    我的密码:·1234qwert

3、文件包编译

将下载好的文件放入文件目录下,这里我放在postgresql目录下

[root@localhost home]# mkdir postgresql   #创建postgresql目录
[root@localhost home]# cd /home/postgresql  #切换到postgresql目录下
[root@localhost home]# tar -zvxf postgresql-10.0.tar.gz  #解压文件
[root@localhost postgresql]# cd postgresql-10.0   #切换到postgresql-10.0目录下
[root@localhost postgresql-10.0]# ./configure  #执行文件

[root@localhost postgresql-10.0]# make 
[root@localhost postgresql-10.0]# make install

3.3、 安装完成后进行数据库data配置
进行配置,先创建好相应的目录文件

mkdir -p /usr/local/pgsql/data # 创建数据存储目录
chown -R postgres:postgres /usr/local/pgsql/data # 用户/用户组目录授权

初始化数据库

su - postgres  # 切换postgres用户

initdb -D /usr/local/pgsql/data
pg_ctl -D /usr/local/pgsql/data -l logfile start
createdb postgis
psql postgis

这里可以查看数据库安装好后的对应版本
select version();

接着需要设置相应的环境变量,方便程序读取到指定内容

# 编辑用户下的环境变量配置文件

 

vi ./.bash_profile

输入如下内容:

LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH
export PGDATA=/usr/local/pgsql/data

 编辑相应的数据库配置文件,修改postgresql.conf与pg_hba.conf

cd /usr/local/pgsql/data
# 查找listen_addresses在postgresql.conf文件中的位置并显示行号
cat postgresql.conf | grep -n listen_addresses
# 编辑postgresql.conf文件,修改默认'localhost' 为'*'
vi postgresql.conf
# 编辑IPv4 local connections: 追加一行,如图所示
vi pg_hba.conf

# 修改完成后可以进行服务的重启
pg_ctl restart
此处截图为pg_hba.conf追加配置

 设置服务自动启动

 chkconfig --list

 

posted @ 2023-02-23 17:22  思江  阅读(3695)  评论(0编辑  收藏  举报