没有所谓的捷径
一切都是时间最平凡的累积

wdcp系统mysql数据库innodb异常重建

本文最后更新:2021年3月23日,已超过1092天未更新,如果文章内容失效,请留言反馈本站。
#!/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

» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《wdcp系统mysql数据库innodb异常重建》
» 本文链接地址:https://mydns.vip/3722.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » wdcp系统mysql数据库innodb异常重建
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏