注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

胡益兵的博客

新的岗位,新的方向,新的使命,stem教育进行中。

 
 
 

日志

 
 

【博文搬家】[转]Moodle系统使用Postgresql数据库  

2011-12-29 11:20:06|  分类: 魔灯专栏 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
发表时间:2009-5-6 11:30:00

转自http://www.jeast.net/student/wenheping/archives/2007/4086.html

大家使用Moodle系统的时候几乎都是不加思索地使用Mysql数据库,但近来的有关Mysql企业版本不再发布tarball形式的源码,进而演变为 Mysql将由开源软件转变为商业软件的传闻使我对这一做法产生了怀疑。我再次看看使用Mysql数据库的不太好的地方,以下是一段摘录:

   (转载自http://www.chinaz.com/Program/Mysql/0615102N2007.html,说Mysql好话的部分省略了:))

    1 MySQL的授权方式:MySQL采用双重授权(Dual Licensed),它们是GPL和MySQL AB制定的商业许可协议。如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL,那么你需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些软件发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。中.国站长站

    2 产品成熟性:到2009年,甲骨文的数据库Oracle已经诞生了30周年,而MySQL却连它的一半时间都没有。微软的SQL Server仅仅比MySQL大两年,但是SQL Server的发布是建立在Sybase的基础上,那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在 2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。 当然,或许这并不是我们拒绝MySQL的一个有说服力的理由,但是对于一些比较守旧的IT经理来说,在为一些关键业务选择平台的时候,平台的成熟性却是必须要考虑的一个因素,在这一点上,MySQL无疑毫无优势。

    3 功能设置成熟性:要想在MySQL与其他数据库之间进行一个面面俱到的功能设置对比,并不是一件容易的事情。随着新软件版本的发布或一些补丁的推出,曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL 4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL 5.0中,大多数关系型数据库所要求的功能已经都具备,但是我们却有理由怀疑这些功能在MySQL 5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在其他关系型数据库中则已经存在了近10年的时间。

    4 认证的作用:尽管MySQL也有一个认证培训项目,但是它的培训却要比Oracle或MS-SQL相差很远。尽管有的使用MySQL的用户表示,MySQL很容易上手,但是对于具有企业级数据库需求的用户来说,无疑希望员工得到系统、有深度的培训,显然MySQL在这一点上还做得很不够。一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。

    5 关于可扩展的看法:关于这个理由我把它放在最后一位。在很多业界专家中有一个相当一致的观点:MySQL不能很好的扩展。关于这点可能有很大的分歧,争论的焦点主要集中于水平可扩展性和垂直可扩展性上。MySQL则更倾向于垂直可扩展性。据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。

 

    简而言之,对我来说,Mysql有两点不妥,一是是否真地会完全转变为商业软件,或者遵守GPL的社区版本功能远不及企业版本;二是在高并发、大数据量的情况下,它的性能是否能令人表现。

 

    但Postgresql刚好可以解决这两个不妥之处,这两个晚上费了好大工夫,配置Moodle以支持Postgresql数据库,整个过程记录如下:

    1 安装好linux系统

    2 安装好基本软件:

    #yum install apache2 php5 php5-gd php5-curl

    后两个软件是Moodle要求必须安装的。

 

    3 安装数据库及其php支持:

    # yum install postgresql-8.1 php5-pgsql

    目前的Etch系统中有两个版本的Postgresql数据库,一个是7.4,一个是8.1,我当然选择高版本的。

(#原创部分:如果下面的步骤无法进行,可通过yum 检查安装
postgresql-libs postgresql-server postgresql-contrib postgresql-devel#)

    Postgresql的一些配置和使用确实比较烦琐,一些基本概念也和其他数据库不一样,这是它性能出众却不流行的一个重要原因。下面为了使后面的moodle系统能使用Postgresql数据库,需要创建相关的用户和数据库等,过程为:

    # su - postgres

    这是Postgresql的缺省超级用户,密码缺省为空。这是一切工作的开始。

    $ createuser -D -A -P wen1

    创建一个用户wen1并设置密码,各参数的意思自行使用createuser --help查询。

    $ createdb -E utf8 -O wen1 moodle

    创建数据库moodle,数据库的主人为wen1,采用utf8编码,这也是Moodle要求一定要这样做的。

    $ exit

    退回到原来的用户状态----我总是使用root帐号这一非专业方式:)

   

    下面需要修改一下Postgresql的配置文件,使它接受本地的用户的密码连接方式:

    # ./var/lib/pgsql/data/pg_hba.conf

    找到最后"local   all  all ident sameuser"这一行,把“ident sameuser”修改为"password",意思是告诉Postgresql采用验证密码的方式来接受客户的一切操作。(本步骤很重要,由于改变的认证方式,所以提前要给postgres设置好帐户,否则webmin中无法进入postgres数据库)

    # /etc/init.d/postgresql-8.1 restart

    重新启动Postgresql数据库服务器,修改了配置文件就是重新启动相应的服务器,这是常识了。

 

    剩下的步骤就是和以往使用Mysql数据库的安装步骤一样了,不重复。就是在选择数据库类型的时候,需要选择Postgresql类型(见下图),直到目前的Moodle1.9beta版本,里面下拉列表中只有Postgresql7.4选项,但经过我的测试,使用Postgresql8.1似乎也没有什么不妥。

  这个列表里面的Oracle只支持Oracle8版本的,可是Oracle已经出到11版本了!另外,我觉得,即使不选择Postgresql数据库,选择Firebird也比选择Mysql显得更为短小精干,可是目前的Moodle竟然不支持Firebird数据库。这样看来,可以为Moodle贡献一些小代码的机会还是很多的。

  评论这张
 
阅读(201)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018