#!/bin/bash dbuser='root' dbpass='xxxxxx' #数据库密码 mysqldata='/home/wddata/var' mycnf='/www/wdlinux/etc/my.cnf' mysql_e='/www/wdlinux/mysql/bin/mysql' mysqldump_e='/www/wdlinux/mysql/bin/mysqldump' mysqlbakpath="/home/bkmysql/$(date +%Y%m%d%H%M%S)" function stop_mysql(){ service mysqld stop if [ $? -ne 0 ];then ps -e|grep mysql|awk '{print $1}'|xargs kill -9 fi } mkdir -p $mysqlbakpath sed -i -e '/\[mysqld\]/a innodb_force_recovery=3' $mycnf stop_mysql service mysqld start #start dump innodb mysql if [ $? -eq 0 ];then cd $mysqldata ls *\/*.ibd -h|awk -F'/' '{print $1}'|uniq|grep -v 'mysql' > $mysqlbakpath/l.txt for i in `cat $mysqlbakpath/l.txt` do echo "dump $i" $mysqldump_e -f -u$dbuser -p$dbpass $i > $mysqlbakpath/$i.sql done fi #end dump innodb mysql #start bkup innodb mysql cd $mysqldata stop_mysql mv -f ibdata1 ib_logfile0 ib_logfile1 $mysqlbakpath for i in `cat $mysqlbakpath/l.txt` do mv -f $i $mysqlbakpath done #end bkup innodb mysql sed -i -e '/innodb_force_recovery=3/d' $mycnf service mysqld start #start Import mysql if [ $? -eq 0 ];then for i in `cat $mysqlbakpath/l.txt` do echo "recovey $i" $mysql_e -u$dbuser -p$dbpass -e "create database $i;" $mysql_e -u$dbuser -p$dbpass $i < $mysqlbakpath/$i.sql done fi #end Import mysql
注意dbpass替换为正确的root密码,将以上内容保存为mysql.sh,然后执行sh mysql.sh
» 本文链接地址:https://blog.mydns.vip/3722.html
最新评论
麻烦发下检测工具
让我下载
非常好