您现在访问的是旧版页面,请您点击下面链接访问新版:新版素材猫
欢迎您来到素材猫
充值

PostgreSQL连线设定与DSpace资料库备份设定

  • 时间:2020-05-23 12:02 编辑:素材猫 来源:素材猫 阅读:111
  • 扫一扫,手机访问
摘要:PostgreSQL连线设定与DSpace资料库备份设定

安装DSpace的时候要先把PostgreSQL的连线类型改成不需要密码的「trust」,但是安装完之后要改回「md5」(以md5加密的密码)或「password」(必须询问密码),以提高PostgreSQL的安全性。

但是本机端需要询问密码的情况下,会让crontab自动排程无法自动备份(dump)PostgreSQL的资料库。因此必须设定该帐号家目录底下的.pgpass,让该帐号不需要再次询问密码就能够直接通过PostgreSQL的认证连线,以顺利汇出资料库。

详细步骤说明如下:

安装DSpace之前需要修改的PostgreSQL设定

安装DSpace的过程中,我建议先把PostgreSQL的连线设定(/var/lib/pgsql/data/pg_hba.conf,注1 )里每一个连线类型改成trust,范例如下:

# TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all trust #ident sameuser# IPv4 local connections:host all all 127.0.0.1/32 trust #ident sameuser# IPv6 local connections:host all all ::1/128 trust #ident sameuser# for DSpacehost dspace dspace 127.0.0.1 trust #255.255.255.

注1^: PostgreSQL在CentOS中预设安装位置在/var/lib/pgsql/当中,故连线的设定档将位于/var/lib/pgsql/data/pg_hba.conf,如果是手动安装则可能会在其他地方。

安装完DSpace之后的PostgreSQL连线设定

安装完成DSpace之后,为了提高PostgreSQL的安全性,设定为本机端连线的时候也需要询问密码。

一样是修改连线设定档/var/lib/pgsql/data/pg_hba.conf,将method改成md5(以MD5编码加密)或password(需要询问密码),修改范例如下:

# TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all md5 #ident sameuser# IPv4 local connections:host all all 127.0.0.1/32 md5 #ident sameuser# IPv6 local connections:host all all ::1/128 md5 #ident sameuserhost dspace dspace 127.0.0.1 password #255.255.255.255

这样修改主要是方便使用phpPgAdmin ——一个用网页介面管理PostgreSQL的工具( 注2 )。

下图是phpPgAdmin的介面:

image_thumb.png

如果连线设定依旧是trust的情况下,任何使用者只要连到该系统的phpPgAdmin工具、知道该帐号名称,则使用任何密码都可以登入PostgreSQL资料库中。

使用phpPgAdmin时,除了需要修改PostgreSQL的连线为「md5」或「password」之外,最好如phpMyAdmin一样地还加上Apache利用.htaccess来实作的认证机制( 注3 )。

注2^:管理PostgreSQL的另一个应用软体是pgAdmin,我写过另一篇DSpace的PostgreSQL资料库架构与操作有介绍过pgAdmin。pgAdmin在画面跟流畅度上是比phpPgAdmin方便很多,但本机电脑必须要安装pgAdmin软体才能使用,而phpPgAdmin只要网路能够连线就能够管理PostgreSQL。

注3^:关于Apache的.htaccess使用者认证的原理,请参考鸟哥的Linux私房菜--WWW伺服器Apache。

PostgreSQL自动备份策略

如果PostgreSQL的连线设定需要使用密码,那么在利用crontab排程自动执行备份指令时,也会遇到需要输入密码而无法自动执行的情况。

PostgreSQL在8版之后(好像是,至少目前我们使用的都是8版)可以使用「.pgpass」来为使用者设定自动认证。

以下介绍详细步骤

假如我们要连线的资料库位置为「localhost」(表示本机端)、连接埠为「5432」(PostgreSQL预设连接埠)、资料库名称为「database」、资料库帐号为「username」、密码为「password」。注意,username不一定要跟你执行crontab的帐号相同。

切换到执行crontab的LINUX实体帐号,假如是「dspace」,则利用su指令切换:

[root@dspace /]# su dspace

在该帐号的家目录新增档案「.pgpass」

[dspace@dspace /]# vim ~/.pgpass

利用vim编辑器输入以下资料:

localhost:5432:database:username:password
完成之后储存离开。

修改.pgpass的权限为600

[dspace@dspace /]# chmod 600 ~/.pgpass

测试看看,利用pg_dump汇出资料库到「/var/lib/pgsql/backups/bkup.sql」

[dspace@dspace /]# pg_dump -U username database > /var/lib/pgsql/backups/bkup.sql

如果「/var/lib/pgsql/backups/bkup.sql」有档案,并且内文为正确的sql档,则表示认证成功。反之,如果系统要求你输入密码,那可能是哪个步骤做错了,请回头一一确认。

当确认可以自动通过认证,以指令执行PostgreSQL汇出的之后,就可以把这些指令加入crontab排程中啰。

资料库一定要天天备份,祝大家伺服器都能运作顺利


  • 全部评论(0)
最新发布的资讯信息
【计算机/互联网|】你不知道的windows小秘密——上帝模式 在Win7/10中都有。(2020-06-18 15:41)
【好东西分享|】本月ProductHunt上当天排名第一的产品 - Pose Animator(2020-06-18 12:14)
【计算机/互联网|PC操作系统】微PE工具箱时隔 3 年再更新(2020-06-10 07:06)
【计算机/互联网|】Proxmox Linux 测试架设流程(2020-06-06 18:01)
【技术支持|】720云VR全景系统网站源码安装说明(2020-06-06 17:48)
【计算机/互联网|】Python 直接嵌入到 Linux 内核还感觉有些惊讶(2020-06-06 17:30)
【技术支持|】CRMEB商城搭建说明(2020-06-06 16:14)
【技术支持|】免xp框架监听短信使用教程(2020-06-05 10:51)
【计算机/互联网|】eps免费版详细装说明(2020-05-27 12:04)
【计算机/互联网|】在 Tomcat 里面部署 Web 项目的几种方式(2020-05-24 11:14)
联系我们
工作时间:8:00-23:30
客服 QQ:116622333
邮 箱:sucaimao#qq.com