跨境电商
经验交流分享

Magento数据库备份、移植终极解决方案

作为电子商务购物车系统解决方案,Magento数据库结构相当复杂,以至于普通的数据库备份方式几乎无法成功备份,即使成功备份,导入数据库也不是一件简单的事情。另一方面,作为一款购物车系统,从安全角度来说,每天备份数据毫不为过。更换域名,更换服务器都多多少少牵涉到Magento的数据库备份相关知识。本文由锐想外贸电子商务解决方案提供,为Magento使用者总结下数据库备份、移植的一个方案。

Magento数据库备份实际上时间非常简单的事情,网上有许多类似的文章使用PHPMyAdmin导出数据库并在生成的sql文件头尾部添加一段sql代码避免外键导致的备份、移植失败。在之前的Magento数据库备份当中,我也在一直采取这种方式,一直到公司站点的数据库超过1G之后,再也无法通过这种方式进行备份了。首先在Windows环境下,很难找到编辑器打开大于1G以上的文件,EditPlus和Zend Studio均告失败,虽然UltraEdit成功打开,但是大概需要一根烟的时间,并且添加sql代码并保存的过程相当痛苦。

备份Magento数据库

经过多个Magento数据库备份方案的对比与尝试,最终决定使用Magento后台自带的Backups Tool工具进行数据库备份。通过该方法备份的数据库文件相比从phpMyAdmin中备份的文件,具有如下几个优点,

  • sql文件已经自动压缩为.gz文件,体积相对较小。本站数据库大概为1.7G,压缩后的gz文件只有87Mb
  • 不需要打开文件添加首位sql代码。Magento在生成该文件时已经自动添加外键关联

说了那么多有点,下面一步步具体了解下如何进行操作。首先,通过如下步骤,进入到Magento内置的数据库备份工具页面中,

System->Tools->Backups

进入该页面之后直接点击右侧的Create Backup按钮,根据数据库大小,等待相应时间之后即可生成一份数据库备份文件。如下图所示。

根据你当前的操作系统,如果是Windows环境的话(相信大多数人使用的都是该系统桌面环境),点击7-Zip即可下载压缩之后的文件,而使用Linux桌面环境的可以下载gz文件。获得该文件之后,可以通过解压工具将数据库文件解压出来,这里需要注意的是,解压出来的文件是没有文件扩展名的,我们需要将其重命名为xxx.sql文件。这样,导入之前的准备工作就结束了(PS:这里需要将该文件的位置记录下来,在命令行导入该文件时需求路径信息)。接下来就是如何将该文件导入到新的数据库中。

导入Magento数据库

同样是总结了多个Mysql数据导入方案之后,最终选择了通过Mysql命令行工具进行导入,而非网上较多通过phpMyAdmin导入的方法。通过phpMyAdmin进行导入较大的数据库文件时,需要顾及到PHP以及Apache的相关配置,比如最大Post值,最大upload值以及脚本最大运行时间,作者在通过PMA导入时就曾遇到过”脚本超时,如果你要完成导入,请重新提交相同的文件,导入将会继续进行”等各种问题。而直接通过Mysql命令行工具,则不需要顾及这些,并且该工具的使用也是相当简单。

Windows桌面环境下可以使用CMD或者MySQL 5.5 Command Line Client数据库管理工具进入数据库,Linux桌面环境及服务器可以直接使用命令行工具或者SSH。进入数据库之后,选择需要导入的数据库,运行如下命令,

[sql]
source /var/www/html/xxx.sql
[/sql]

根据你的数据库大小,等待相应时间。到此,Magento备份的数据库顺利导入到新库中。整个导入过程也进入收尾阶段。如果说你没有更换域名,并且新导入的库与原始数据库的名字是一样的,那么到此,你的新Magento网站就可以顺利打开了。那么如果新的数据库名更换了,或者说你更换了域名,该如何操作呢?

Magento域名变更操作

Magento数据库core_config_data表中记录了购物车系统的域名地址,在初次创建购物车的时候,系统会自动读取并将网站地址些人该表中。当更换域名时,需要修改表中的记录,否则Magento无法识别当前域名,导致生成的url地址都是老域名地址。修改该记录非常简单,进入phpMyAdmin,选择core_config_data表中的path字段对应的web/unsecure/base_url和 web/secure/base_url的value值并更改为当前域名地址即可,切忌不可缺少http以及域名结尾的/斜杠!如下图所示,

完成上述操作之后,如果仍旧无法正常打开网站的话,可能是新数据库名与老数据库名不一致。Magento在配置文件中明码写入了数据库的相关信息,可以在如下路径找到该文件。

app/etc/local.xml

在编辑器中打开该文件,找到如下xml代码片段,

[xml]
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[qweasd]]></password>
<dbname><![CDATA[magento_1_5_1]]></dbname>
<active>1</active>
</connection>
</default_setup>
[/xml]

可以看到,在该段代码当中,Magento记载了数据库的相关信息。如果程序与数据库在同一台服务器上的话,默认localhost即可,username是数据库用户名,password是数据库密码,dbname即刚新创建的数据库名。这里需要注意的是,你仅仅需要修改![CDATA[xxxxxxx]]中的xxxxxx即可。

完成上述所有操作之后,打开浏览器,键入网址,OK,应该能够正常访问你的Magento购物车程序了。本文到此结束,希望能给使用Magento的朋友们一些收获。

赞(0)
未经允许不得转载:锐想 » Magento数据库备份、移植终极解决方案
分享到: 更多 (0)

评论 4

评论前必须登录!

 

  1. #1

    :mrgreen:

    很强大6年前 (2013-03-26)
  2. #2

    确实,这个是目前最好的办法了额

    zorro6年前 (2013-06-04)
  3. #3

    非常强大,非常好

    yan5年前 (2014-04-18)

锐想电商 - 跨境电商经验交流分享

锐想无限