mysql数据备份导入导出说明和对应的shell脚本

小浪SEO博客 专注SEO优化思维、SEO技术的实战分享类博客~

本文章来给大家介绍在mysql备份数据方法同时也介绍了与这些对应的shell脚本代码,希望有需要了解学习的朋友可进入参考.

1.导出整个数据库,–hex-blob 为有blob数据做的,防止乱码和导入失败用.

mysqldump -u 用户名 -p 数据库名 > 导出的文件名,代码如下:

mysqldump -u root -p --default-character-set=gbk --hex-blob i5a6 > i5a6.sql

2.导出一个表:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名,代码如下:

mysqldump -u root -p i5a6 users> i5a6.sql

3.导出一个数据库结构,代码如下:

mysqldump -u root -p -d --add-drop-table i5a6 >d:/i5a6.sql

-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

常用source 命令,进入mysql数据库控制台,如 mysql -u root -p,代码如下:

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql),代码如下:

mysql>source d:/i5a6.sql

上面都是比较散的代码,下面我们来看shell代码,我首先要在本文带给你的是完整脚本,后面会对该脚本做说明,我假定你已经知道shell scripting、mysqldump和crontab.

数据库导出代码,代码如下:

  1. #!/bin/bash
  2. #1.数据库信息定义
  3. mysql_host="192.168.1.1"
  4. mysql_user="root"
  5. mysql_passwd="root"
  6. #sql备份目录
  7. root_dir="/backup"
  8. back_dir="/backup/databases"
  9. data_dir="databases"
  10. store_dir="database"
  11. if[!-d$back_dir];then
  12. mkdir-p$back_dir
  13. fi
  14. #备份的数据库数组
  15. db_arr=$(echo"showdatabases;"|mysql-u$mysql_user-p$mysql_passwd-h$mysql_host)
  16. #不需要备份的单例数据库
  17. nodeldb="test1"
  18. #当前日期
  19. date=$(date-d'+0days'+%Y%m%d)
  20. #zip打包密码
  21. zippasswd="passwd"
  22. zipname="lczh_"$date".zip"
  23. #2.进入到备份目录
  24. cd$back_dir
  25. #3.循环备份
  26. fordbnamein${db_arr}
  27. do
  28. if[$dbname!=$nodeldb];then
  29. sqlfile=$dbname-$date".sql"
  30. mysqldump-u$mysql_user-p$mysql_passwd-h$mysql_host$dbname>$sqlfile
  31. fi
  32. done
  33. #4.tar打包所有的sql文件
  34. tar-zcPpf$root_dir/$store_dir/$zipname--directory/ $root_dir/$data_dir
  35. #打包成功后删除sql文件
  36. if[$?=0];then
  37. rm-r$data_dir
  38. fi

数据定期清理脚本,作用:定期清理14天前的备份文件,代码如下:

  1. #!/bin/bash-
  2. #1.参数配置
  3. #mysql文件备份目录
  4. backup_dir1="/backup/test1/"
  5. backup_dir2="/backup/test2/"
  6. backdir_arr=($backup_dir1$backup_dir2)
  7. #过期文件的时间
  8. keep_time=14
  9. #当前所在星期,crontab在奇数的星期7执行
  10. week=$(date+%W)
  11. flag=`expr$week%2`
  12. #2.清理过期文件,只在奇数星期7执行
  13. if[$flag-eq1];then
  14. fordirin${backdir_arr[*]}
  15. do
  16. if[-d$dir];then
  17. #查找14天之外的文件数据
  18. clean_arr=`find$dir-typef-mtime+$keep_time-execls{};`
  19. forcleanfilein${clean_arr}
  20. do//phpfensi.com
  21. rm$cleanfile
  22. done
  23. fi
  24. done
  25. fi

crontab配置,代码如下:

0 5 * * 7 执行清理脚本

相关广告
  • mysql数据备份导入导出说明和对应的shell脚本 mysql数据备份导入导出说明和对应的shell脚本 mysql数据备份导入导出说明和对应的shell脚本
相关阅读

mysql数据备份导入导出说明和对应的shell脚本

2019/10/10 17:36:25 | 谷歌SEO算法 | SEO技术