PostgreSQL(大多数人称之为Postgres)是一个高级的对象关系数据库管理系统(ORDBMS)。 Postgres是一个开源数据库服务器,拥有超过18年的积极开发,使Postgres成为企业级应用程序的最佳选择。
Postgresql是跨平台的,可运行在诸如Linux,OSX,Windows和BSD系列之类的许多操作系统上。 当您拥有大型数据库工作负载的应用程序时,这是正确的选择。 Postgres已被许多大型组织使用,包括雅虎,Instagram和Disqus。 Postgres还通过例如Heroku和AWS(Amazon Web Services)作为软件即服务(SaaS)提供。
在本教程中,我将介绍如何使用OpenSUSE Leap作为操作系统将Postgres安装在您自己的服务器上。 然后我将安装phpPgAdmin,以便我们可以从Web浏览器管理我们的Postgres数据库。
前提条件
- OpenSUSE Leap 42.1
- 根权限
第1步 - 安装PostgreSQL
openSUSE存储库包含两个版本的Postgres。 在这一步中,我们将使用zypper命令在openSUSE上安装PostgreSQL 9.4。
用zypper安装PostgreSQL:
zypper in postgresql94 postgresql94-contrib postgresql94-server
用systemctl启动postgresql:
systemctl start postgresql
第2步 - 配置默认用户
在此步骤中,我们将为postgres用户设置一个密码。 Postgresql使用一个类似于用户名为“角色”的Linux用户系统进行基本身份验证和授权的概念。 默认情况下,postgresql会创建一个名为“postgres”的新用户来管理postgresql服务器。
让我们先从终端登录到用户postgres进行配置postgresql数据库的第一步:
sudo su
su - postgres
现在我们将使用psql命令。 psql是PostgreSQL的命令行前端,我们可以直接从它执行PostgreSQL查询。
psql
从psql shell,我们可以使用下面的“password”命令更改“postgres”用户的密码:
\password postgres
New Password:
输入您的postgres用户的新密码。
第3步 - 创建一个新的PostgreSQL用户
在此步骤中,我们将创建一个具有超级用户权限的新用户/角色,并创建一个新的数据库并授予用户访问权限。
要创建一个新的用户,我们必须以postgres用户身份登录,然后使用以下命令创建一个新的角色和数据库:
su - postgres
createuser -s nano
createdb nano_db
注意:
-s选项用于给予新用户超级用户权限。
nano是新的用户名。
nano_db是新的数据库名称。
现在登录到postgresql shell psql,并给我们的新角色一个密码并授予数据库访问权限。
psql
alter user nano with encrypted password 'aqwe123@';
grant all privileges on database nano_db to nano;
我将在这里使用用户nano的密码'aqwe123 @',并将权限授予数据库nano_db。
该用户将被用于从基于web的phpPgAdmin接口登录到postgresql,因为我们不允许任何默认的用户或没有密码的用户从phpPgAdmin登录到postgresql。
第4步 - 配置PostgreSQL
在此步骤中,我们将配置PostgreSQL来监听公共IP,以便我们可以从桌面计算机远程访问DB建模工具。如果不想远程访问Postgres,您可以跳过此步骤。
转到postgresql目录“/ var / lib / pgsql /”并使用您喜欢的编辑器编辑主配置文件“postgresql.conf”:
cd /var/lib/pgsql/
cd data/
vim postgresql.conf
取消注释行59,并将值从localhost更改为“*”。
取消注释第63行配置默认端口。
listen_addresses = '*'
port = 5432
保存文件并退出编辑器。
为了允许从web应用程序phpPgAdmin访问PostgreSQL数据库,我们需要编辑pg_hba.conf文件并更改一些配置设置。
使用vim编辑“pg_hba.conf”文件:
vim pg_hba.conf
在行尾,将认证配置更改为md5:
#TYPE Database User Address Method
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
如果要允许从服务器之外的新连接,如使用PgAdmin3,您可以添加更多“主机”记录,例如桌面的IP。
保存并退出。
现在使用systemctl命令重新启动PostgreSQL服务:
systemctl restart postgresql
第5步 - 安装和配置phpPgAdmin
phpPgAdmin是一个基于Web的应用程序来管理PostgreSQL数据库。 它基于PHP,并提供GUI来管理数据库和创建角色。 在这一步中,我们将安装phpPgAdmin,因为它可以从Web浏览器访问,我们将使用apache2作为Web服务器。
使用此zypper命令安装phpPgAdmin:
zypper in phpPgAdmin
该命令将自动安装依赖关系的PHP和apache的Web服务器。
接下来,转到phpPgAdmin目录并编辑配置文件config.inc.php。
cd /etc/phpPgAdmin/
vim config.inc.php
在主机配置行18中,将值设置为“localhost”。
$conf['servers'][0]['host'] = 'localhost';
如果您想允许具有名称“postgres”或“root”的用户使用phpPgAdmin登录到postgresql,则可以将额外的安全性设置为false,但不建议将其设置为false。 检查第93行。
$conf['extra_login_security'] = true;
保存并退出。
然后在apache中激活phpPgAdmin所需的PHP和版本扩展:
a2enmod php5
a2enmod version
现在使用systemctl命令重新启动所有服务:
systemctl restart postgresql
systemctl restart apache2
第6步 - 测试
从Web浏览器访问phpPgAdmin,URL:
http://192.168.1.101/phpPgAdmin/
用用户名和密码'aqwe123 @'登录。
如果您使用用户'postgres'登录并输入正确的密码,则不允许。