 腾讯云服务器大促销。
腾讯云服务器大促销。

            mysql innodb损坏修复方法shell批量处理,将脚本中的路径及相关信息改成自己的即可
    #!/bin/bash
    dbuser='root'
    dbpass='ssssss'
    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
  
 
 腾讯云服务器大促销。
                   
腾讯云服务器大促销。
  
           
                     
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
               
              
文章评论 本文章有个评论