首页 > 范文大全 > 正文

基于Mysql数据库Moodle课程迁移的解决方案

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Mysql数据库Moodle课程迁移的解决方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

文章编号:1672-5913(2009)10-0180-02

摘要:moodle平台作为一个优秀的开放式网络课程管理系统,可以方便地用来构建网络课程。本文主要论述了Moodle课程迁移到新的服务器后,由于服务器IP地址的改变而造成课程资源中部分链接失效的问题,分析了问题产生的原因,并找出了解决方案

关键词:Moodle;课程;Mysql;迁移

中图分类号:G642

文献标识码:A

Moodle是Modular Object-Oriented Dynamic Learning Environment(模块化面向对象的动态学习环境)的缩写,是专门针对广大教师在信息化环境中设计、管理、实施和评价自己的课程与教学而开发的课程管理系统。Moodle自诞生之日起就以自由软件的形式出现,遵循GPL(GNU Public License)协议,这使它充满了无穷的活力,吸引了一大批开发者和使用者,目前主流版本是1.9版。

1Moodle数据迁移中存在的问题

Moodle可以运行在Windows环境下,首次使用需要安装,安装成功后,系统会生成一个名为config.php的文件,内含服务器的配置信息。如果要把Moodle整体迁移到另外一台服务器上,只要拷贝整个Moodle文件夹到新服务器上,并把config.php文件中wwwroot项对应的IP地址改为新服务器的IP地址,就可以了。

教师在使用Moodle建设课程资源的时候,往往用一台计算机作为服务器添加教学活动和课程资源,完成网络课程的制作。在这些课程资源建设完成后,若要迁移到另外一台服务器上,课程资源中的有些内容可以正常显示,但是有些图片或文件可能会因为链接无效而导致课程资源无法使用,这些问题可用通过修改Mysql数据库中的数据予以解决。

2原因分析

Moodle中可以添加多种资源,主要包括编写文本页、编写网页、链接到文件或站点、显示一个目录、部署IMS包和插入标签等,不同类型的资源在Mysql数据库对应表中的字段类型和长度等不同。表1中以显示一个图片为例,列出了使用“链接到文件”显示图片和使用“编写网页”显示一个嵌入式图片的区别,这两条记录都是存储在表mdl_resource中。

由表1可见,通过“链接到文件”所链接的图片,保存在reference字段中,保存的仅是文件名,是一种相对路径的存储,没有固定地和服务器IP地址对应,只要相对位置的图片还存在,在整个Moodle课程拷贝到其他服务器上时,仍然会正常显示;而通过“编写网页”在网页中嵌入图片,是在alltext字段中存储了该网页的html语句,其中的211.87.171.227是创建该网页时所使用服务器的IP地址,alltext字段中的内容不会因为服务器IP地址的改变而改变,该图片将因找不到IP地址所指向的文件而无法显示。

除了图片文件外,其他类型的文件也都存在这种相对位置引用和使用IP地址进行引用的问题。而“添加活动”在Mysql中的存储方式和资源的存储方式类似,只不过不同的活动存储在不同的表中。

3解决方案和步骤

Moodle平台后台数据库可用Mysql,在数据库管理方面,可以使用命令行,但是太多命令不利于记忆;可以借助于Mysql Administrator管理,但是在安装和使用方面不是很方便。

PhpMyadmin 是一个以PHP为基础,以Web-Base方式架构在网站服务器上的Mysql的数据库管理工具,可以管理整个Mysql服务器,界面简单友好,在Moodle中可以借助于PhpMyadmin进行数据库的管理。

3.1在Moodle中添加PhpMyadmin

Moodle1.9版中不包含PhpMyadmin,可以从官方下载站点/下载,解压后得到一个名为PhpMyadmin的文件夹,直接拷贝PhpMyadmin文件夹到..\server\moodle文件夹下。

3.2修改配置文件

进入..\PhpMyadmin\libraries目录,打开config.default.php文件,找到以下各项,将其后的字符串进行修改,如下:

$cfg['PmaAbsoluteUri'] = '211.87.165.136';

//新服务器的IP地址

$cfg['Servers'][$i]['host'] = 'localhost';

//通常用默认

$cfg['Servers'][$i]['user'] = 'root';

// Mysql的默认用户

$cfg['Servers'][$i]['password'] = '123456';

// 密码须与设置Moodle时相对应

$cfg['DefaultLang'] = 'zh';

//选择语言,zh代表简体中文

3.3Mysql数据库管理

打开IE浏览器,输入 211.87.165.136/PhpMyadmin,211.87.165.136就是新服务器的IP地址,就可以用PhpMyadmin管理包括Moodle数据库在内的Mysql数据库,如图1所示。

图1 用PhpMyadmin管理Moodle数据库

3.4修改资源的链接

为了能够使课程资源在迁移到新服务器上之后能正常使用,需要修改相关表中的内容,把用文本形式(VARCHAR或MULTITEXT等类型)记录的链接资源修改与新服务器相对应。Moodle数据库共有200多张表,在课程资源建设完成以后,逐个表进行检查和修改是不可行的,可以使用游标,用存储过程自动逐条进行修改。

在Moodle数据库中建立存储过程P_ChangeIP,找出含有VARCHAR、MULTITEXT或TEXT类型的字段及其表名,定义一个游标,每次返回的结果是表名和其中的字段名,用CONCAT函数拼接字符串构建SQL语句,在Update命令中使用Replace进行更新,用新服务器的IP地址替换原服务器的IP地址。

存储过程的代码如下:

CREATE PROCEDURE P_ChangeIP( )

BEGIN

DECLARE done INT DEFAULT 0;

DECLARE tname,cname VARCHAR(64);

DECLARE cur1 CURSOR FOR

SELECT table_name,column_name

FROM information_schema.columns

where table_schema = "moodle" and

(data_type like "%varchar%" or data_ type like "%text%");

--information_schema是系统数据库,通过它可获取Moodle数据库的表名、列名等信息

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

OPEN cur1;

REPEAT

FETCH cur1 INTO tname,cname;

IF NOT done THEN

set @sql_text:=concat("update ",tname, "set ",cname ," = replace(",cname,",

'211.87.171.227','211.87.165.136')");

prepare stmt from @sql_text;

execute stmt;

deallocate prepare stmt;

END IF;

UNTIL done END REPEAT;

CLOSE cur1;

END

存储过程定义完成后,使用CALL Moodle.P_ChangeIP( )命令执行之,就可以一次性完成对相关链接数据的修改了。

4结束语

作为一个正在不断成长、日趋成熟的网络教学平台,Moodle的技术在不断改进之中, 其技术改进需要使用者共同参与,进一步优化软件功能,开发更多适合国情的教学模块,为教学提供更好的技术支持。随着功能的不断完善,Moodle必将为学校的网络课程资源建设提供强有力的支持,成为提升教学质量的有力工具。

参考文献:

[1] 刘贯南,刘荣光,刘晓琴. 基于Moodle网络课程的设计与实施探索[J]. 现代教育技术,2008(6).

[2] 曹效英,徐勤岸. 基于Moodle的网络课程开发[J]. 软件导刊,2008(4).

[3] 杨慧玲,张志洁. Moodle平台在网络教育资源建设中的应用[J]. 教育技术导刊,2007(8).

[4] 陈恒法,罗兵. 基于Moodle 教学辅助系统的应用实践[J]. 中国教育信息化,2007(5).

Solution to Moodle Course Migration Based on mysql Database

QIAO Xian-liang

(Qingdao Ocean Shipping Mariners College, Qingdao 266071,China )

Abstract: Moodle is an excellent open course management system, It is powerful and easily to operate, can be expediently used to set up a network course. When Moodle course migrate to a new server, some hyperlink resources are disabled because of the change of the new server IP address, analyzing the reason, bringing forward a feasible solution.

Key words: Moodle; course; Mysql; migration