云服务器MYSQL数据库innodb结构数据库损坏修复

[复制链接] |主动推送
查看62 | 回复0 | 2024-9-11 08:11:48 | 显示全部楼层 |阅读模式
通过备份盘数据恢复数据库,适合普通人员操作
一.windows系统
    找到mysql安装目录,
    如果是我司建站助手安装,则在D:\soft_php_package\mysql\,将data目录改名,然后将备份盘中相同路径下data复制回来,
    再启动,如果仍无法启动,可尝试备份一份整个mysql目录以后,覆盖整个mysql目录;
    如果是自己安装的mysql,则找到安装目录下my.ini文件,用记事本打开该文件,如
    basedir="D:/phpStudy/MySQL/"   #这里是mysql安装路径
    datadir="D:/phpStudy/MySQL/data/" #这里是mysql数据存放路径
    将data目录改名,然后将备份盘中相同路径下data复制回来,如果仍无法启动,可尝试覆盖整个mysql目录;
    如果仍无法启动恢复,可备份数据,重装mysql
二.linux系统   
    如果是我司默认安装wdcp环境,则在/home/wddata/var,将var目录改名,然后将备份盘中相同路径下var复制回来,
    cd /home/wddata/
    mv var  var.bak
    cp -rfpu /home1/wddata/var /home/wddata/
    service mysqld start
    如果是自己安装的mysql,则找到my.cnf文件,如
    basedir="/etc/mysql/"   #这里是mysql安装路径
    datadir="/etc/mysql/var/" #这里是mysql数据存放路径
    将var目录改名,然后将备份盘中相同路径下var复制回来,如果仍无法启动,可尝试覆盖整个mysql目录
    如果仍无法启动恢复,备份好现有mysqldata目录,再重装mysql
强烈推荐按以上方案恢复
















以下是专业技术人员重建innodb数据库过程参考,非专业人士请勿尝试,可能会造成数据丢失!!!
跳过恢复模式,导出数据重建数据库
    找到mysql安装目录下的my.ini文件,在[mysqld]下一行中添加
    innodb_force_recovery = 6
    innodb_purge_threads = 0
    保存后再启动mysql
在D:\mysql\建立一个文件,命名db.txt,用记事本打开
将使用innodb结构的数据库名写入,一行一个
再在桌面新建立一个文件,命名dump.bat,用记事本打开复制以下代码
echo off
cls
md D:\deleted\sql
for /f %%i in (D:\mysql\db.txt) do (
echo %%i
mysqldump -uroot -p密码 -Q -a --opt --default-character-set=gbk %%i>D:\deleted\sql\%%i-gbk.sql
mysqldump -uroot -p密码 -Q -a --opt --default-character-set=utf8 %%i>D:\deleted\sql\%%i-utf8.sql
)
其中'密码'改为实际的mysql密码
停止服务,去掉my.ini的innodb_force_recovery参数,将data目录下的ibdata和ib_logfile剪切到其他位置,启动服务

导入数据
新建im.bat
echo off
cls
md D:\deleted\bkup
for /f %%i in (D:\mysql\db.txt) do (
echo %%i
move /y d:\mysql\data\%%i D:\deleted\bkup\
mysql -uroot -p密码 -e "create database %%i;"
mysql -uroot -p密码 --default-character-set=utf8 %%i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则