使用 Unix 管道命令 | 迁移备份数据库文件

Submitted by dravenk on Sun, 11/26/2017 - 00:08

在之前的mysql管理中,我使用了 mysqldump 直接导出 sql 文件,但当数据量稍微大点的时候,sql 文件可能会相当大,导出导入很耗时间。其实可以使用管道命令 | 将 sql 文件压缩导出,再通过解压导入,节省时间。  

e.g:

mysqldump -u user -p user_database | gzip > /tmp/thisdbdata.tar.gz

注解:使用 mysqldump 将用户 user 的数据库为 user_database 导出,并通过 gzip 方式压缩,输出到 位置  /tmp文件名为 thisdbdata.tar.gz  

Drush 提供了更方便的数据库备份方式:

drush sql-dump --gzip > /tmp/thisdbdata.tar.gz

在导入数据库前,可以使用 drush 将数据库清空  

drush sql-drop -vy

使用 drush 可以非常方便快速的导入一个数据库文件 ,通过 gunzip 工具的 -c 参数指定项目存放的文件/tmp/thisisdatabase.tar.gz,通过管道命令将其作为数据输入,使用 drush sqlc 命令导入到数据库。

gunzip -c /tmp/thisdbdata.tar.gz | drush sqlc

 

笔记相关:(mysql导入sql文件)  

Reference :

https://en.wikipedia.org/wiki/Pipeline_(Unix)  

https://wiki.archlinux.org/index.php/Festival  

https://ryanstutorials.net/linuxtutorial/piping.php