Linux中部署PostgreSQL

322 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.解压

tar  -xvf postgresql-10.5-1-linux-x64-binaries.tar.gz

2.将解压文件重命名

mv  pgsql postgresql

由于PostgreSQL无法在root用户下安装

image.png

所以我们在安装的时候需要先新建一个用户

3.新增postgres用户组:  

groupadd postgres

新增postgres用户并且设置这个用户属于上面创建的postgres用户组:   

useradd -g postgres postgres

4.修改postgres用户密码:(这里设置密码为postgres)

passwd postgres  

image.png

5.在解压后的文件夹内创建pgsql数据目录

cd postgresql/

mkdir  pgsql_data

image.png

由于是在root用户下解压的,需要使用普通用户(postgres)去初始化数据库,所以需要把解压的文件夹授权给对应的用户

chown -R postgres:postgres postgresql/

image.png

6.初始化数据库

切换为普通用户

su  postgres

image.png

然后在bin目录下执行

./initdb -D  /aifs01/iam/iam_soft/postgresql/pgsql_data

image.png

   出现上述提示说明初始化成功,其中

./pg_ctl  -D  /aifs01/iam/iam_soft/postgresql/pgsql_data/ -l logfile start

为pgsql数据库的启动命令

7.配置数据库参数

进入/postgresql/pgsql_data/目录,配置数据库参数(设置服务器监听整个网络,设置端口号为8432)

vim postgresql.conf

image.png

8.配置对数据库的访问控制

 进入/postgresql/pgsql_data/目录,新增kong节点ip地址和本机ip。

vim pg_hba.conf
host    all             all             10.10.10.1/32         trust

host    all             all             10.10.10.2/32         trust

host    all             all             0.0.0.0/0             md5

image.png

9.启动数据库

在postgresql/bin目录下

./pg_ctl -D /aifs01/iam/iam_soft/postgresql/pgsql_data -l logfile start

image.png

10.查看进程是否存在

ps -ef | grep postgres

image.png

11.停止数据库 

./pg_ctl  -D  /aifs01/iam/iam_soft/postgresql/pgsql_data/ -l logfile stop

image.png

12.登录数据库

./psql -h 10.21.171.20 -d postgres -p 8432

13.创建数据库

CREATE USER kong;

ALTER USER kong WITH PASSWORD  'kong' ;

ALTER USER postgres WITH PASSWORD 'postgres';

CREATE DATABASE kong OWNER kong;

\q退出

image.png

遇到的问题

 1.在执行启动命令的时候提示 psql.bin: FATAL:  no pg_hba.conf entry for host "10.21.171.67", user "postgres",database "postgres", SSL off

image.png

解决办法:

将本机IP加入到pg_hba.conf文件里面,本文在前面已经有添加本机ip的步骤,就是为了避免出现这个问题

image.png

完成后重新启动pgsql然后登录成功  

 ./pg_ctl  -D  /aifs01/iam/iam_soft/postgresql/pgsql_data/ -l logfile restart

image.png

image.png

2.在创建完成后,使用Navicat连接pgsql发现报错no pg_hba.conf entry for host

解决办法:

需要在PostgreSQL数据库的安装目录下找到/pgsql_data/pg_hba.conf,找到“# IPv4 local connections:”

在pg_hba.conf文件内加入

host    all             all             0.0.0.0/0               md5

image.png

然后重新启动pgsql

./pg_ctl  -D  /aifs01/iam/iam_soft/postgresql/pgsql_data/ -l logfile restart

重启完后连接成功

image.png