为PostgreSQL配置pgAdmin管理模块

网友投稿 952 2022-05-30

0. 前序:

今天尝试给自己自建的pgSQL配置一个pgAdmin管理模块,发现官网手册的一堆问题;

故整理安装部署过程中的一些问题,以备后查!

参考pgAdmin官网文档,原文档链接如下:

https://www.pgadmin.org/download/pgadmin-4-rpm/

1. 下载及安装

OS环境:CentOS 7

安装方式:测试了一下postgre官方下载速度,还可以。故本文采用yum方式安装;

1.1. 安装pgAdmin repo包:

rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-fedora-repo-1-1.noarch.rpm

安装完成后,会在/etc/yum.repos.d/目录下,生成一个pgadmin4.repo文件,确认此文件存在即可。

1.2. 安装pgadmin:

pgAdmin有三种安装方式,分别是桌面版、web版,还有两种一起安装的,安装命令参考如下:

# Install for both desktop and web modes.

sudo yum install pgadmin4

# Install for desktop mode only.

sudo yum install pgadmin4-desktop

# Install for web mode only.

sudo yum install pgadmin4-web

我只安装了web版,以后打算就通过web方式管理pgsql服务器,故运行以下命令执行安装:

[root@hadoop ~]# yum -y install pgadmin4-web

此处需注意,pgadmin是基于python3的(CentOS7默认是python2.7版本),在安装pgadmin4-web的过程中,会安装其依赖的python36版本,如果觉得官方软件源安装太慢,建议先行修改本地系统的yum源,包括【base源、epel源】;

可以使用华为的软件源,网址参见:https://mirrors.huaweicloud.com

2. 初始化pgAdmin环境

问题从这里开始,官方给的初始化配置命令是:

sudo /usr/pgadmin4/bin/setup-web.sh

执行后各种报错:安装pgadmin时,报错各种依赖包缺失,错误信息如下:

[root@hadoop ~]# /usr/pgadmin4/bin/pgadmin4-web-setup.sh

Traceback (most recent call last):

File "/usr/lib/python3.6/site-packages/pgadmin4-web/setup.py", line 31, in

from pgadmin import create_app

File "/usr/lib/python3.6/site-packages/pgadmin4-web/pgadmin/__init__.py", line 21, in

from flask_babelex import Babel, gettext

ModuleNotFoundError: No module named 'flask_babelex'

Error setting up server mode. Please examine the output above.

#还有其它一些依赖包,不一一列举。

提示系统缺少flask_babelex模块。

当然,其实并不只缺少上面提示的这一个模块,还有其它几个,错误信息就不一一罗列;

安装需要的依赖包:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask_babelex

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple alembic

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple ldap3

再次初始化服务(完成初始后,会启动apache服务):

[root@hadoop ~]# /usr/pgadmin4/bin/pgadmin4-web-setup.sh

NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

# 注:此处输入的信息,是初始化完成后的登录信息:

Email address: yangzb@shlongtian.com

Password:

Retype password:

pgAdmin 4 - Application Initialisation

======================================

setsebool:  SELinux is disabled.

setsebool:  SELinux is disabled.

We can now configure the Apache Web server for you. This will create the pgAdmin4 conf file under /etc/httpd/conf.d/. Do you wish to continue?

1) Yes

2) No

#? 1

pgAdmin4 Apache config file is created as /etc/httpd/conf.d/pgadmin4.conf

Apache web server is not running. We can start the web server for you to finish pgAdmin4 installation. Would you like to continue?

1) Yes

2) No

#? 1

Apache successfully started. You can now start using pgAdmin4 in web mode

[root@hadoop ~]#

注:初始化完成后,系统会配置好Apache服务,并启动web的80端口;

打开浏览器能看到Apache的经典首页。。。

3. 启动pgAdmin

这一节,官文也没有交待清楚,自己摸索了好久。。。

为PostgreSQL配置pgAdmin管理模块

前面yum安装pgAdmin完成后,软件包是被安装在了/usr/lib/python3.6/site-packages/pgadmin4-web/路径下;

注:其中python3.6及各个库,是安装pgAdmin时,依赖安装自EPEL的;

执行以下命令测试pgAdmin启动:

python3 /usr/lib/python3.6/site-packages/pgadmin4-web/pgAdmin4.py

路径太长,每次启动服务时太麻烦,做个软链接吧:

ln -s /usr/lib/python3.6/site-packages/pgadmin4-web /usr/pgadmin4/web

默认启动后,是监听在127.0.0.1地址上,只能本机访问;

配置以下配置文件,使其可以对外提供服务:

# 修改配置文件(如果没有config_local.py,就新创建一个)

cd /usr/pgadmin4

vi web/config_local.py

from config import *

DEFAULT_SERVER = '0.0.0.0'

DEFAULT_SERVER_PORT = 5050

配置完成

再次启动服务,并放到后台启动:

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

4. 登录测试

打开浏览器,输入:http://ip_address:5050,能正常打开pgAdmin的页面,就可以愉快的玩耍了:

本文完结。

PostgreSQL

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:零代码开发地标识别(基于中国农业大学地标)
下一篇:SaSSHimi: 跳过AllowTcpForwarding
相关文章