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。
数据库导出代码
代码如下 | 复制代码 |
#!/bin/bash #1.数据库信息定义 #sql备份目录 #备份的数据库数组 #当前日期 #zip打包密码 #2.进入到备份目录 #3.循环备份 #4.tar打包所有的sql文件 |
数据定期清理脚本
作用
定期清理14天前的备份文件
代码如下 | 复制代码 |
#!/bin/bash - #1.参数配置 #mysql文件备份目录 #过期文件的时间 #当前所在星期,crontab在奇数的星期7执行
#2.清理过期文件,只在奇数星期7执行 |
crontab配置
代码如下 | 复制代码 |
0 5 * * 7 执行清理脚本 |