Linux部署postgresql并开启远程访问

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

Linux部署postgresql和开启远程访问

一、 服务器资源

服务名称:Linux服务器

IP:[请查看资源分配文档]

操作系统:CentOS 7.8 x64

二、postgresql安装

2.1、 postgresql 下载

下载地址:www.postgresql.org/ftp/source/

image.png

image.png

2.2、将压缩包放到 tools目录下并解压

postgresql-13.4.tar.gz上传到/opt/tools目录下,并解压

# cd /opt/tools

# tar -zxvf postgresql-13.4.tar.gz
复制代码

2.3、解压后进行配置

# cd /opt/tools/postgresql-13.4

# ./configure --prefix=/opt/app/postgresql
复制代码

注: /opt/app/postgresql/:安装目录

configure 配置时出错:

image.png

执行配置脚本前需安装gccreadline-develzlib-devel(rpm -qa | grep readline查看有无安装)

命令:yum -y install gcc yum -y install readline-devel yum install -y zlib-devel

服务器无法联网,可以找一台可以联网的服务器下载gccreadline-develzlib-devel

yum install --downloadonly --downloaddir=/download readline-devel、

yum install --downloadonly --downloaddir=/download zlib-devel(只下载不安装)
复制代码

2.4、配置后进行编译安装

# cd /opt/tools/postgresql-13.4

# make && make install   #(耐心等待)
复制代码

2.5、配置环境变量

# vi /etc/bashrc
复制代码

在文件末尾添加以下内容:

export PATH=$PATH:/opt/app/postgresql/bin
复制代码

使修改马上生效:

# source /etc/bashrc
复制代码

测试psql命令:

# psql --help
复制代码

2.6、初始化数据

创建psql的用户和密码

# useradd postgres

# passwd postgres  
复制代码

创建数据目录

# cd /opt/app/postgresql

# mkdir data
复制代码

创建日志目录

# cd /opt/app/postgresql

# mkdir logs
复制代码

设置postgresql文件夹的所有者和所属组为postgres

# chown -R postgres:postgres /opt/app/postgresql
复制代码

切换到postgres用户来操作数据库,pgsql数据库以postgres为默认用户

# su postgres
复制代码

初始化数据库

先切换postgres用户,进入安装目录(/opt/app/postgresql),然后进行初始化数据库的命令

# bin/initdb -D /opt/apps/postgresql/data
复制代码

注: /opt/app/postgresql/data/:数据目录

2.7、启动postgresql数据库

# bin/pg_ctl -D /opt/apps/postgresql/data -l /opt/apps/postgresql/logs/logfile start
复制代码

注: 这里-l指定日志文件位置,这里直接输出到/opt/app/postgresql/logs/logfile

登录测试:

# psql
复制代码

image.png

以上表示登录成功!!!^_^

image.png

修改postgre密码:

# ALTER USER postgres WITH PASSWORD 'dbPassw0rd';
复制代码

image.png

2.8、停止postgresql数据库

# bin/pg_ctl -D /opt/app/postgresql/data stop
复制代码

2.9、配置系统服务service

进入postgresql源码包的解压目录****

# cd /opt/tools/postgresql-13.4
复制代码

复制启动脚本到init.d下

# cp contrib/start-scripts/linux /etc/init.d/postgresql
复制代码

修改postgresql

# vi /etc/init.d/postgresql
复制代码

image.png

赋予该文件执行权限

# chmod +x /etc/init.d/postgresql
复制代码

设置服务开机自启

# chkconfig --add postgresql
复制代码

启动数据库服务

# service postgresql start
复制代码

这样,咋们就可以用service服务启动pgsql了,简单!!!^_^

二、远程访问

默认情况下,pgsql在linux服务器上面,已经是安装和启动成功了,也能连上。

但是本地window环境下,是无法连接上pgsql服务器的,这个确实是个大麻烦!!!

image.png

下面,咋们就得开启pgsql的远程访问了!!!

3.1、修改postgresql.conf

# vi /opt/app/postgresql/data/postgresql.conf
复制代码

image.png

注: 取消 listen_addresses 的注释,将参数值改为“*

3.2、修改pg_hba.conf

# vi /opt/app/postgresql/data/pg_hba.conf
复制代码

image.png

注: 找到host  all  all  127.0.0.1/32  trust这行,然后在下面添加一行:host  all  all  0.0.0.0/0  trust即可

3.2、重启服务

# bin/pg_ctl -D /opt/app/postgresql/data -l /opt/app/postgresql/logs/logfile restart
复制代码

# service postgresql restart
复制代码

三、配置防火墙

4.1、开启5432端口

# firewall-cmd --zone=public --add-port=5432/tcp --permanent # 开放5432端口
复制代码
# firewall-cmd --zone=public --remove-port=5432/tcp --permanent #关闭5432端口
复制代码

#配置立即生效

# firewall-cmd --reload 
复制代码

#重启防火墙

# service firewalld restart 
复制代码

#查看已开放的端口

# firewall-cmd --list-ports 
复制代码

好了,以上就是linux部署postgresql并开启远程访问的全过程了,就是这样了!!!^_^

今天就先到这里了,溜了溜了溜了!!!^_^

image.png

猜你喜欢

转载自juejin.im/post/7090889741998129159