mysql备份并升级sql语句
#!/bin/bash pass=''
time=`date +%Y%m%d-%H%M`
db_path=/root/code/xizang_PAD_project/PHP_business_server/tfcms/upgrade/db/
db_name=tf_syberos_cms
db_bak=/usr/local/src/backup/$db_name-$time\.sql #Determine the results
result() {
if [ $? != 0 ];then
echo -e "\033[31m$1 $faild\033[0m" && exit 1
else
echo -e "\033[32m$1 $ok\033[0m"
fi
} #usage $1 is remote ip , $2 is sql file
usage() {
if [ $# -lt 2 ];then
echo -e "\033[31m usage: sh $0 ip sql_file\033[0m"
echo -e "\033[31m example: sh $0 172.16.160.99 v1.0.0-v1.1.0.txt \033[0m"
echo -e "\033[31m explain: 升级主机要配置ssh免密,可以使用auto_ssh.sh \033[0m" && exit 2
fi
} #Backup remote database
backup_db() {
ok="backup db ok !";faild="backup db faild !"
ssh root@$1 "mysqldump -uroot -p$pass -R --opt $db_name > $db_bak"
result } #sql files add transaction
add_transaction() {
ok="add transaction ok !";faild="add transaction faild !"
grep "start transaction" $db_path$2
if [ $? != 0 ];then
sed -i '1i\start transaction;' $db_path$2
result
fi
grep "commit" $db_path$2
if [ $? != 0 ];then
echo "commit;" >> $db_path$2
result
fi
} # Import sql
import_sql() {
ok="sql execution ok !";faild="sql execution faild !"
if [ -f $db_path/$2 ];then
mysql -uroot -p$pass -h$1 tf_syberos_cms < $db_path$2
result
else
echo -e "\033[31m $db_path/$2 file no exist ! \033[0m" && exit 1
fi
} #main function
main() {
usage $1 $2
backup_db $1
add_transaction $1 $2
import_sql $1 $2
} main $1 $2
mysql备份并升级sql语句的更多相关文章
- 【转】MySQL用户管理及SQL语句详解
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
- 如何用VS EF连接 Mysql,以及执行SQL语句 和存储过程?
VS2013, MySQL5.7.18 , MySQL5.7.14 执行SQL语句: ztp_user z = new ztp_user(); object[] obj = new object[] ...
- 浅谈mysql配置优化和sql语句优化【转】
做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...
- 如何记录MySQL执行过的SQL语句
很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等.只要有 SQL 语句的记录,就能知道情况并作出对策.服务器是可以开启 MySQL 的 ...
- mysql里面如何用sql语句让字符串转换为数字
sql语句将字符串转换为数字默认去掉单引号中的空格,遇到空格作为字符串截止, SELECT '123 and 1=1' +0 结果为123 MySQL里面如何用sql语句让字符串的‘123’转换为数字 ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
- MySQL用户管理及SQL语句详解
1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...
- MySQL数据库-表操作-SQL语句(二)
1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表 ...
- MySQL数据库-表操作-SQL语句(一)
1. 数据库操作与存储引擎 1.1 数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...
随机推荐
- Java方法存在于哪一区
Java运行时的数据区包括:(其中前两个是线程共享的) 1.方法区(Method Area)存储已被虚拟机加载的类信息.常量.静态变量.即编译器编译后的代码等数据 2.堆(Heap)存放对象实例,几乎 ...
- erlang动态生成随机key
取随机数,举个例子: 获取动态随机key值16位(key的范围是由"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678 ...
- JavaWeb学习总结第三篇--走进JSP页面元素
JavaWeb学习(三)—走进JSP页面元素 JSP:Java Server Pages,译为Java服务器页面.其脚本采用Java语言,继承了Java所有优点.JSP元素可以分为指令元素.脚本元素和 ...
- 【Scala】Scala的Predef对象
隐式引用(Implicit Import) Scala会自己主动为每一个程序加上几个隐式引用,就像Java程序会自己主动加上java.lang包一样. Scala中.下面三个包的内容会隐式引用到每一个 ...
- 获取网站的BaseURL
//get base URL var _urlstr = window.location.href; if (_urlstr.indexOf("? ...
- Java 学习 day01
1. 基本常识 2. Java的跨平台性 3. Java环境搭建(安装) 4. Java环境搭建(环境变量配置) 5. Java环境搭建(环境变量配置技巧) 6. Java环境搭建(环境变量临时配置方 ...
- 【BZOJ2476】战场的数目 矩阵乘法
[BZOJ2476]战场的数目 Description Input 输入文件最多包含25组测试数据,每个数据仅包含一行,有一个整数p(1<=p<=109),表示战场的图形周长.p=0表示输 ...
- Struts2问题总结
1 如何搭建Struts2开发环境? Struts2 获取 http://struts.apache.org/download.cgi Struts-2.3.16.3-all.zip 创建Web项 ...
- 宿舍更换的新淋浴喷头"水温vs旋钮角度"关系的研究(曲线)
版权声明:我极少创造新知识,大部分情况下是个知识的二道贩子 https://blog.csdn.net/stereohomology/article/details/24478825 应该非常一目了然 ...
- 关于android R.java文件无法创建的问题
R.java文件无法创建的原因网上有很多说法普遍是以下两种: 1. xml文件有错误: 解决方法就是找到哪个xml有错然后把错误修复就OK了. 2.编码问题 这时候只要把xml文件的编码改成utf8就 ...