欢迎,来自IP地址为:35.171.164.77 的朋友
PostgreSQL(即Postgres)是一款免费的开源关系数据库管理系统(RDBMS),以 Oracle 的开源替代产品作为目标,PostgreSQL 一直强调标准性和可扩展性。 PostgreSQL由 PostgreSQL Global Development Group 开发,是MacOS服务器的默认数据库,同时也支持其他平台。
pgAdmin 是最流行的开源 PostgreSQL 数据库服务器管理Web界面,具有丰富的功能。 pgAdmin 4 已经发布并可通过PostgreSQL yum 软件库的认可。
本文将演示如何在 CentOS 7 服务器上安装PostgreSQL 11和pgAdmin 4。 教程分为三个部分,首先我们将安装PostgreSQL,然后我们将配置 PostgreSQL 允许远程访问,最后我们将安装pgAdmin Web界面。
1. 演示环境说明
- Operating System – CentOS 7.6
- Hostname – postgresql.daehub.com
- IP Address – 192.168.1.200/24
2. CentOS 7 系统安装 PostgreSQL 11
CentOS 7.6 发行版软件库默认安装 PostgreSQL 9.2,但是我们想要安装最新版的 PostgreSQL 11,就需要安装首先安装 PostgreSQL yum 软件库,命令如下:
# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
软件库安装成功后,使用如下命令安装 PostgreSQL:
# yum install postgresql11 postgresql11-server
数据库安装成功后,则使用如下命令初始化数据库实例、设置开机启动并启动 PostgreSQL 数据库:
# /usr/pgsql-11/bin/postgresql-11-setup initdb # systemctl enable postgresql-11 # systemctl start postgresql-11
数据库启动成功后,则使用”postgres”登录到服务器设置管理密码:
# su - postgres
示例将管理密码设置为”daehub”,至此,我们已经在 CentOS 7 系统成功安装了 PostgreSQL 11。
3. CentOS 7 系统配置 PostgreSQL 11 远程接入
默认情况下,PostgreSQL服务在本地端口5432运行。如果需要,我们可以将其配置为从网络中的其他计算机进行远程访问。
编辑 PostgreSQL 配置文件”/var/lib/pgsql/11/data/postgresql.conf”,修改文件中如下内容:
# listen_addresses = '*'
允许访问的网络在配置文件”/var/lib/pgsql/11/data/pg_hba.conf”中进行设置,使用如下命令将服务器所在网段加入到允许访问列表中:
# echo "host all all 192.168.1.0/24 md5" >> /var/lib/pgsql/11/data/pg_hba.conf
现在,就可以通过网络来远程访问 PostgreSQL数据库了。
配置完成后,使用如下命令重新启动数据库,并将 postgresql 服务添加到防火墙允许列表:
# systemctl restart postgresql-11 # firewall-cmd --add-service=postgresql --zone=public --permanent # firewall-cmd --reload
现在,我们就可远程访问 PostgreSQL 服务器了。
4. CentOS 7 系统安装 pgAdmin 管理网页
为了简化 PostgreSQL 的数据库管理,我们将在 CentOS 7 服务器上安装了一个非常流行的SQL Web界面,即 pgAdmin 4。pgAdmin 同样可以在 PostgreSQL 11软件库中获得。但首先,我们需要安装 EPEL 软件库,因为 pgAdmin 4 需要一些 EPEL 软件库中的软件包。安装命令如下:
# yum install epel-release # yum makecache fast # yum install pgadmin4
pgAdmin 4是一个基于 Python 开发的 web 应用程序,因此它需要一个支持 Python 语言的 web 服务器来部署。幸运的是,yum 方式安装 pgAdmin 4 不需要考虑这些因素,因为它会自动安装 Apache HTTP服务器以及 Python 语言支持。
现在,使用如下命令启动 Web 服务器并开在防火墙中放行 HTTP 流量:
# systemctl enable httpd # systemctl start httpd # firewall-cmd --add-service=http --zone=public --permanent # firewall-cmd --reload
pgAdmin 4还贴心的为我们提供了一个 Apache 的示例配置文件,我们只需要将其修改为可以被”httpd”支持即可:
# mv /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf
修改这个配置文件,将”ServerName”部分修改实际内容,示例使用”192.168.1.200″:
<VirtualHost *:80> ServerName 192.168.1.200 LoadModule wsgi_module modules/mod_wsgi.so WSGIDaemonProcess pgadmin processes=1 threads=25 WSGIScriptAlias /pgadmin4 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi <Directory /usr/lib/python2.7/site-packages/pgadmin4-web/> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> </VirtualHost>
修改Python 支持包对应文件”/usr/lib/python2.7/site-packages/pgadmin4-web/config_distro.py”的路径变量,在文件中添加如下内容:
SQLITE_PATH = '/var/lib/pgadmin/pgadmin.db' SESSION_DB_PATH = '/var/lib/pgadmin/sessions' STORAGE_DIR = '/var/lib/pgadmin/storage' LOG_FILE = '/var/log/pgadmin/pgadmin.log'
使用如下命令修改对应文件夹的权限:
# chown -R apache:apache /var/log/pgadmin/ # chown -R apache:apache /var/lib/pgadmin/
最后,使用以下命令设置SELinux访问权限,如果禁用了SELinux,以下命令可以忽略:
# semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin(/.*)?" # restorecon -R /var/lib/pgadmin/ # semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/pgadmin(/.*)?" # restorecon -R /var/log/pgadmin/ # setsebool -P httpd_can_network_connect_db 1
现在,重新启动 Apache 服务器,并使用如下命令对 pgAdmin 4进行初始化:
# systemctl restart httpd # python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py
系统会提示输入pgAdmin 4 的管理邮箱和登录密码,最后提示应用初始化完成。
现在,可以通过浏览器访问”http://YOUR_SERVER_IP/pgadmin4/”来打开 pgAdmin 4的页面了。
输入之前设置的邮箱和密码,然后点击登录,注意可以在语言下拉框里选择简体中文:
点击添加服务器按钮,输入相应信息:
最后,点击保存完成添加 PostgreSQL 服务器。
至此,我们已经成功在 CentOS 7 系统安装了 PostgreSQL 数据库服务器和 pgAadmin 4 管理界面。
One thought on “CentOS 7 系统安装 PostgreSQL 和 pgAdmin”