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

wdcp环境/宝塔环境innodb异常需要重建

本文最后更新:2024年4月25日,已超过171天未更新,如果文章内容失效,请留言反馈本站。

wdcp面板和宝塔面板环境mysql数据库innodb损坏异常重建脚本,以下脚本中的路径根据实际情况进行替换调整。

WDCP面板环境

#!/bin/bash
dbuser='root'
dbpass='vfkahp2p'
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/1.txt
    for i in `cat $mysqlbakpath/1.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/1.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/1.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

宝塔面板环境

#!/bin/bash
dbuser='root'
dbpass='kp5hwmzy'
mysqldata='/www/server/data'
mycnf='/etc/my.cnf'
mysql_e='/www/server/mysql/bin/mysql'
mysqldump_e='/www/server/mysql/bin/mysqldump'
mysqlbakpath="/home/bkmysql/"
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=6' $mycnf
stop_mysql
service mysqld start
#start dump innodb mysql
if [ $? -eq 0 ];then
    cd $mysqldata
# 注意宝塔有时候没有分表为ibd.删除下面ls开头一行    
# 在/home/bkmysql/下创建1.txt ,内容为数据库列表,一行一个
# 可以mysql登录数据库后,执行show databases;获取.注意删除mysql test等无用数据库
    ls *\/*.ibd -h|awk -F'/' '{print $1}'|uniq|grep -v 'mysql' > $mysqlbakpath/1.txt
    for i in `cat $mysqlbakpath/1.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/1.txt`
do
    mv -f $i $mysqlbakpath
done
#end bkup innodb mysql
sed -i -e '/innodb_force_recovery=6/d' $mycnf
service mysqld start
#start Import mysql
if [ $? -eq 0 ];then
    for i in `cat $mysqlbakpath/1.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`
» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《wdcp环境/宝塔环境innodb异常需要重建》
» 本文链接地址:https://mydns.vip/4856.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » wdcp环境/宝塔环境innodb异常需要重建
分享到: 更多 (0)

评论 抢沙发


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

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

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

联系我们赞助我们

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

支付宝扫一扫打赏

微信扫一扫打赏