在Magento开发和维护过程中,经常需要将Magento的数据库导出、导入,这些工作可以通过mysqldump这个工具来实现。
下面我来简单介绍一下mysqldump在导出导入Magento database时需要注意的地方:
导出:
$ mysqldump -uroot -p PASSWD db_name > db_name.sql
这条命令可以把mysql中db_name数据库中的所有表导出到db_name.sql文件中。
如果你只需要db_name数据库中的几个表,可以在上述命令添加table选项, 命令如下:
$ mysqldump -uroot -p PASSWD db_name table1 table2 > db_name.sql
这条命令只会导出db_name数据库中table1和table2表。
多说一点:
mysqldump导出整个数据库的命令有两个格式:
只导出一个数据库:
mysqldump [options] db_name [tbl_name ...]
导出多个数据库:
mysqldump [options] --databases db_name ...
--databases 选项可以指定将要导出的数据库名称,但是在导出的文件中,会在每个数据库的sql开头添加如下代码:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `origin_db_name` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `origin_db_name`;
具体使用哪种命令,需要根据具体情况加以选择。
在通过mysqldump得到sql文件之后,可以通过mysql的source命令导入这些数据:
假如你的sql文件是通过mysqldump [options] db_name [tbl_name ...]这条命令导出的,就需要在导入之前先选中数据库:
mysql> use new_db_name;
然后执行导入命令:
mysql> source /path/to/db_name.sql
这样就可以把db_name.sql中包含的数据导入到new_db_name数据库中。
回到Magento这里,当把一个Magento Site的数据库导入到一个新的Magento Site的数据库中后,还需要修改core_config_data表中的有关base_url和domain的记录的value:
如果不更新这些记录,会导致一些奇怪的问题,凡是涉及到base_url和cookie的地方都会出现问题。
具体命令如下:
update core_config_data set value='http://new.domain.com/' where path like '%base_url%';
update core_config_data set value='new.domain.com' where path like '%domain%';
这样,原来Magento Site的数据库就导入到了新的Magento Site数据库中了。
如果您觉得阅读本文对您有帮助,欢迎转载本文,但是转载文章之后必须在文章页面明显位置保留此段声明,否则保留追究法律责任的权利。
作 者:blog.jpdou.top
原文链接:http://blog.jpdou.top/use-mysqldump-backup-magento-databases/