mysql数据备份导入导出详解
来源:互联网 发布:灯光设计软件 编辑:程序博客网 时间:2024/05/24 16:15
1、mysqldump 命令工具说明
2、例子
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
5、Shell脚本
上面都是比较散的代码,下面我们来看shell代码
我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。我假定你已经知道shell scripting、 mysqldump和crontab。
数据库导出代码,代码如下
#!/bin/bash
#1.数据库信息定义
mysql_host="192.168.1.1"
mysql_user="root"
mysql_passwd="root"
#sql备份目录
root_dir="/backup"
back_dir="/backup/databases"
data_dir="databases"
store_dir="database"
if [ ! -d $back_dir ]; then
mkdir -p $back_dir
fi
#备份的数据库数组
db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)
#不需要备份的单例数据库
nodeldb="test1"
#当前日期
date=$(date -d '+0 days' +%Y%m%d)
#zip打包密码
zippasswd="passwd"
zipname="lczh_"$date".zip"
#2.进入到备份目录
cd $back_dir
#3.循环备份
for dbname in ${db_arr}
do
if [ $dbname != $nodeldb ]; then
sqlfile=$dbname-$date".sql"
mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbname >$sqlfile
fi
done
#4.tar打包所有的sql文件
tar -zcPpf $root_dir/$store_dir/$zipname --directory / $root_dir/$data_dir
#打包成功后删除sql文件
if [ $? = 0 ]; then
rm -r $data_dir
fi
数据定期清理脚本
作用
定期清理14天前的备份文件
代码如下 复制代码
#!/bin/bash -
#1.参数配置
#mysql文件备份目录
backup_dir1="/backup/test1/"
backup_dir2="/backup/test2/"
backdir_arr=($backup_dir1 $backup_dir2)
#过期文件的时间
keep_time=14
#当前所在星期,crontab在奇数的星期7执行
week=$(date +%W)
flag=`expr $week % 2`
#2.清理过期文件,只在奇数星期7执行
if [ $flag -eq 1 ]; then
for dir in ${backdir_arr[*]}
do
if [ -d $dir ]; then
#查找14天之外的文件数据
clean_arr=`find $dir -type f -mtime +$keep_time -exec ls {} ;`
for cleanfile in ${clean_arr}
do
rm $cleanfile
done
fi
done
fi
crontab配置
代码如下
0 5 * * 7 执行清理脚本
4、其他
添加时间:
mysqldump -uroot --default-character-set=utf8 --hex-blob -p"kEy31kG_" gameonline | gzip > /data/mysqlback/gameonline`date +%Y-%m-%d_%H%M%S`.sql.gz
- mysql数据备份导入导出详解
- mysql导入导出备份数据
- mysql 数据导入导出详解
- MYSQL数据的导入,导出,备份
- MySQL (六) 数据 备份 恢复 导入 导出
- Mysql 导入导出备份
- Mysql数据备份、恢复、数据导入、数据导出的方法
- Mysql数据库备份,Mysql数据导入导出,命令行
- mysql数据的备份恢复和导入导出
- Mysql导入导出大量数据的方法、备份恢复办法
- Mysql海量数据--导入导出、备份恢复方法
- MySQL 查看/备份/导入/导出/结构或数据
- 数据库备份和恢复--数据的导入导出 (mysql)
- mysql导入导出sql文件备份还原数据…
- MongoDB 导出导入备份恢复数据详解及实例
- mysql备份导出数据
- mysql 数据库备份,导出导入
- MySQL数据库备份、导入导出
- 欢迎使用CSDN-markdown编辑器
- 第十六章 内存管理(1)====高质量程序设计指南C/C++编程
- zoj 1648 Grandpa's Estate(判断线段是否相交(不考虑端点相交))
- ADB操作常见问题汇总
- 关于react native运用的简单总结
- mysql数据备份导入导出详解
- 编程之美8:链表常见面试笔试题集合
- NuGet来管理你的包——成绩登统系统
- 组合测试法中的全对偶测试法
- 字符串 Substring with Concatenation of All Words
- 关于类似“Can't bind to local 8602 for debugger”错误的解决方案
- 《从非结构化数据到大数据》有感
- eclipse调试多线程
- kali可用的更新源