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。

数据库导出代码

 代码如下 复制代码

#!/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  执行清理脚本

时间: 2024-11-09 00:39:30

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

php mysql数据的导入导出,数据表结构的导入导出

实现数据的导入导出,数据表结构的导入导出 ********************************************************/         //         //包含Mysql数据库操作文件         //         require_once("MysqlDB.php");          /******************************************************* **类    名:MysqlDB

MySQL分卷备份/导入工具使用教程

相信很多使用虚拟主机,没有SSH权限的站长们,最郁闷的一件事就是MySQL数据的备份和导入,几兆大小的数据文件还好说,但经常有动辄几十上百兆的数据需要导入导出,phpmyadmin可以方便的导出大量数据,但对于大文件的导入却无能为力. 下面推荐的一款"PHP版MySQL数据库分卷备份工具",可以轻松胜任超大数据库的备份/导入工具,最重要的是,他可以分卷操作,并可以指定每个文件的大小. 需要输入密码验证才能进行操作 分卷备份 分卷导入,只要导入一个文件,会自动导入其余分卷 官方下载

Linux下实现MySQL数据备份和恢复的命令使用全攻略_Mysql

为了保障数据的安全,需要定期对数据进行备份.备份的方式有很多种,效果也不一样.一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复.从而将损失降到最低.下面我们来了解一下MySQL常见的有三种备份恢复方式: 1.利用Mysqldump+二进制日志实现备份 2.利用LVM快照+二进制日志实现备份 3.使用Xtrabackup备份 一:实验环境介绍: 系统介绍:CentOS6.4_X64 数据库版本:mysql-5.5.33 二:基于Mysqldump命令实现备份恢复 2.1.思路概念

利用phpExcel实现Excel数据的导入导出(全步骤详细解析)_php技巧

很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题. 首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用正确进行测试. (一)导入Excel 第一,在前台html页面

利用Perl 脚本实现 MySQL 异机导入导出

单位的开发同事需要将一个mysql 中的库导入到本地mysql中 所以为了减少手工操作,就写了下面的一个用perl 实现的 mysql 异机导入导出脚本:如下 #!/usr/bin/perl -w #Author:andylhz #Date:20120/08/29 #Purpose:Import database from other mysql db host to local. my $db_host_local="localhost"; my $db_username_local

php调用java不能实现excel数据的导入导出?

问题描述 linux系统中,用java实现了将数据库中数据导成excel格式的文件,也实现了将excel文件中数据导入到数据库中,直接用java/javac编译运行程序没问题,也能实现数据的导入导出.但是在前台用php写的页面中却不能调用这个类的这些方法实现数据的导入导出,可以调用这个类的测试方法(比如返回数字1)得到想要的结果,不知道是什么原因?是不是在PHP中还要做什么设置来支持excel的导入导出?java实现了excel数据的导入导出,应该和php没有关系吧?请高手解答,急待您的回答?另

MySQL数据备份之mysqldump的使用详解_Mysql

mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句. B. --opt 如果加上--opt参数则生成的du

[Hadoop大数据]——Hive数据的导入导出

Hive作为大数据环境下的数据仓库工具,支持基于hadoop以sql的方式执行mapreduce的任务,非常适合对大量的数据进行全量的查询分析. 本文主要讲述下hive载cli中如何导入导出数据: 导入数据 第一种方式,直接从本地文件系统导入数据 我的本机有一个test1.txt文件,这个文件中有三列数据,并且每列都是以'\t'为分隔 [root@localhost conf]# cat /usr/tmp/test1.txt 1 a1 b1 2 a2 b2 3 a3 b3 4 a4 b 创建数据

循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我们每天面对的太多东西了,觉得很多都稀松平常了,即使很细微的地方,可能我们都已经形成习惯了.反过来,如果我们切换到其他领域,如IOS.android,那么开始我们可能对里面很多设计的规则不甚了解,开始可能也是一头雾水. 本篇继续上一篇<循序渐进开发WinForm项目(4)--Winform界面模块的集