建库、用户语句

create database test_hb;
create user ' test_hb'@'%' identified by '123456';
grant all privileges on test_hb.* to ' test_hb'@'%';
grant all privileges on test_hb.* to test_hb@localhost identified by '123456';
flush privileges;

备份脚本

#!/bin/sh

# $Id: mysql_backup 

# define restricted path
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/mysql3306/bin" # adirname - return absolute dirname of given file
adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; } # ---------
# constants
# ---------
MYNAM=`basename "$0"`
MYDIR=`adirname "$0"`
MYTMP="${MYDIR}/tmp"
MYLCK="${MYTMP}/${MYNAM}.lock" MYPRG="/usr/local/mysql3306/bin/mysql -uroot -p123456 -P 3306 -h 127.0.0.1 --local-infile=1 -Bse" # mysql client
MYDMP="/usr/local/mysql3306/bin/mysqldump -uroot -p123456 -P 3306 -h 127.0.0.1 -Q -R -v --opt" # mysqldump
ROTATE=`date +%d`
MYBAK="/home/backup/mysql/${ROTATE}" # destination dir
DT="" # ---------
# functions
# --------- message() { echo "$@"; } # message - output message on stdout
error() { echo "$@" >&2; } # error - output message on stderr
die() { error "$@"; exit 1; } # die - output message on stderr and exit usage() {
error "Usage: ${MYNAM} <options>"
error ""
error "Available options:"
error ""
error " -h This help screen"
error ""
error " -q suppress non-error messages"
error " -d db1,db2,... To dump several databases."
error " -t File name with datetime"
error " -p path Dump to the directory" die
} # parse command line options
while getopts d:p:hqt opt; do
case "${opt}" in
q)
V='-q'
;;
t)
DT=".`date +%Y%m%d%H%M`"
;;
p)
DP=${OPTARG}
;;
d)
DBS=(${OPTARG//,/ })
;;
h)
usage
;;
*)
usage
;;
esac
done [ -n "${DP}" ] && MYBAK="${DP}" if [ ! -d ${MYTMP} ] ; then
mkdir -p ${MYTMP}
fi if [ ! -d ${MYBAK} ] ; then
mkdir -p ${MYBAK}
fi # ----
# main
# ---- # perform some locking (as good as it gets in a shell)
[ -s "${MYLCK}" ] && kill -0 `cat "${MYLCK}"` 2>/dev/null &&
die "${MYNAM}: already running!"
echo "$$" > "${MYLCK}" # get list of databases
mydbs=""
if [ "x$DBS" == "x" ] ; then
mydbs=`${MYPRG} "SHOW DATABASES"`
[ -z "${mydbs}" ] && die "${MYNAM}: unable to get list of databases."
else
S=0
E=${#DBS[@]}
while [ ${S} -lt ${E} ]
do
mydb=`${MYPRG} "SHOW DATABASES like \"${DBS[${S}]}\""`
if [ -z "${mydb}" ] ; then
DBS[${S}]=""
else
mydbs=${mydbs}" "${mydb}
fi
S=`expr ${S} + 1`
done
fi # process databases
for db in ${mydbs}; do # skip special database(s)
[ "$db" == "information_schema" ] && continue
[ "$db" == "test" ] && continue
[ "$db" == "car_source" ] && continue # verbose?
[ "$V" == "-q" ] || echo "Processing database ${db}..."
[ "$V" == "-q" ] || echo # make dir
mkdir -p "${MYBAK}/${db}" ${MYDMP} "${db}" 2>"${MYBAK}/${db}/${db}${DT}.log" | gzip > "${MYBAK}/${db}/${db}${DT}.sql.gz" # get list of tables
mytbs=`${MYPRG} "SHOW TABLES FROM \\\`${db}\\\`"`
[ -z "${mytbs}" ] && message "${MYNAM}: unable to get list of tables for ${db}." # process tables
for tb in ${mytbs}; do
# MYTIME=`date +%Y%m%d%H%M`
[ "$V" == "-q" ] || echo "Processing ${db}.${tb}..." [ "$V" == "-q" ] || echo "- Dumping..."
${MYDMP} "${db}" "${tb}" 2>"${MYBAK}/${db}/${db}.${tb}${DT}.log" | gzip > "${MYBAK}/${db}/${db}.${tb}${DT}.sql.gz" [ "$V" == "-q" ] || echo "- Checking..."
${MYPRG} "CHECK TABLE \`${db}\`.\`${tb}\`" | egrep "[^:alnum:\._-]error[^:alnum:\._-]" |
grep -v "doesn't support check" [ "$V" == "-q" ] || echo "- Analyzing..."
${MYPRG} "ANALYZE LOCAL TABLE \`${db}\`.\`${tb}\`" > /dev/null [ "$V" == "-q" ] || echo "- Optimizing..."
${MYPRG} "OPTIMIZE LOCAL TABLE \`${db}\`.\`${tb}\`" > /dev/null [ "$V" == "-q" ] || echo
done # verbose?
[ "$V" == "-q" ] || echo done # cleanup
touch -t `/bin/date --date "3 days ago" "+%Y%m%d%H%M"` /dev/shm/${MYNAM}.start
find /home/backup/mysql/ ! -newer /dev/shm/${MYNAM}.start -type f -exec rm {} \;
find /home/backup/mysql/ -type d -empty -print0 | xargs -0 -n 100 rm -rf &> /dev/null
还原数据库时,到备份目录找到最新的备份。dataname.sql.gz 结尾
zcat dataname.sql.gz|mysql -uroot -p123456 dataname

  

mysql 遍历所有的库并根据表和sql语句备份的更多相关文章

  1. mysql从一个表中拷贝数据到另一个表中sql语句

    这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下 ...

  2. MySQL创建民族表的SQL语句

    MySQL创建民族表的SQL语句 CREATE TABLE `nation` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `nation` ) NOT NUL ...

  3. MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?

    项目中,评论数,关注数等数据,是实时更新的.+1,-1 这种. 有的时候,可能统计不准确. 需要写一个统计工具,更新校准下. 用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了. 为了简单起见 ...

  4. MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  5. phpmyadmin查看创建表的SQL语句

    本人菜鸟 发现创建表的SQL语句还不会 直接phpmyadmin解决的 查看见表的语句除了直接到处SQL格式文件 打开查看外 就是执行语句查询 语句:show create table 表名  貌似大 ...

  6. 创建数据库和表的SQL语句

    创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略 3 ( 4 /*--数据文件的具体描述--*/ 5 n ...

  7. 创建数据库和表的SQL语句【转】

    创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...

  8. oracle 修改表的sql语句

    oracle 修改表的sql语句     1增加一个列:ALTER TABLE 表名 ADD(列名 数据类型);如:ALTER TABLE emp ADD(license varchar2(256)) ...

  9. (转载)根据数据字典表定义的表结构,生成创建表的SQL语句

    <来源网址:http://www.delphifans.com/infoview/Article_221.html>根据数据字典表定义的表结构,生成创建表的SQL语句 //1.  类名:T ...

随机推荐

  1. Codeforces Round #426 Div. 1

    A:考虑每个质因子,显然要求次数之和是3的倍数,且次数之差的两倍不小于较小的次数.对于第一个要求,乘起来看开三次方是否是整数即可.第二个取gcd,两个数分别除掉gcd,之后看两个数的剩余部分是否都能被 ...

  2. POJ 2245 Addition Chains(算竞进阶习题)

    迭代加深dfs 每次控制序列的长度,依次加深搜索 有几个剪枝: 优化搜索顺序,从大往下枚举i, j这样能够让序列中的数尽快逼近n 对于不同i,j和可能是相等的,在枚举的时候用过的数肯定不会再被填上所以 ...

  3. Matplotlib学习---用matplotlib和sklearn画拟合线(line of best fit)

    在机器学习中,经常要用scikit-learn里面的线性回归模型来对数据进行拟合,进而找到数据的规律,从而达到预测的目的.用图像展示数据及其拟合线可以非常直观地看出拟合线与数据的匹配程度,同时也可用于 ...

  4. 【cf789B】Masha and geometric depression(分类讨论/暴力)

    B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...

  5. Centos 5 无法使用ifconfig命令

    问题原因,在环境变量里没有包含文件夹 / sbin , 该文件夹下存有 ifconfig, 可以在终端下 cat /etc/profile, 可以发现没有关于 / sbin 的环境变量 解决方法:vi ...

  6. 逆向并查集 HYSBZ1015星球大战starwar

    星球大战starwar HYSBZ - 1015   很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系 ...

  7. 关于Autosar中的NM模块的理解

    本篇文章主要介绍AutoSar中关于NM模块的理解. 阅读本篇文章希望达到的目的: 1. NM(网络管理)是用来做什么的: 2. AutoSar中网络管理的原理: 3.项目实例介绍 1. NM(网络管 ...

  8. javascript之复习(css属性值的计算)

    js取div的宽高咋办,css有content-box,border-box,padding-box,表现又不一样.好在有个offsetWidth, <style type="text ...

  9. mysql查看正在执行的sql语句

    有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; ...

  10. Electron入门笔记(二)-快速建立hello world

    官方的文档我没有看懂,看了不少别人的博客和文章,终于慢慢看懂了如何快速的建立一个Electron app demo,前一篇文章不是使用官方快速搭建的,而且还出了小问题,所以去撸了一遍quick-sta ...