设为首页 加入收藏

TOP

修复MySQL数据库(MyISAM/InnoDB)(二)
2014-11-24 08:21:51 来源: 作者: 【 】 浏览:6
Tags:修复 MySQL 数据库 MyISAM/InnoDB
修复一个失败的InnoDB数据库。这个数据库因崩溃而无法启动。
第一步将InnoDB在force-recovery模式下开启,此时InnoDB虽开启了但是将忽略所有更新(UPDATEs)与插入(INSERTs)操作。
在/etc/my.cnf文件中添加此行:
innodb_force_recovery = 2
现在重启数据库:
/usr/local/bin/mysqld_safe &
(注意:如果MySQL没有启动,继续增加 innodb_force_recovery 的数值直到将参数值设为8( innodb_force_recovery =)
将所有数据保存到临时文件alldb.sql(下个命令需要花一定时间):
mysqldump --force --compress --triggers --routines --create-options -uUSERNAME -pPASSWORD --all-databases > /usr/alldb.sql
再次关闭数据库:
mysqladmin -uUSERNAME -pPASSWORD shutdown
删除数据库目录。(注意:我的数据目录在/usr/local/var下。你的设置有可能不同,确保删除的是正确的文件夹。)
rm -fdr /usr/local/var
重建数据库文件夹,安装MySQL基础表
mkdir /usr/local/var
chown -R mysql:mysql /usr/local/var
/usr/local/bin/mysql_install_db
chown -R mysql:mysql /usr/local/var
从/etc/my.cnf文件中删除innodb_force_recovery ,重启数据库:
/usr/local/bin/mysqld_safe &
导入所有备份文件(下一命令需要花一段时间):
mysql -uroot --compress < /usr/alldb.sql
最后,刷新MySQL的权限(因为我们也更新了MySQL的表)
/usr/local/bin/mysqladmin -uroot flush-privileges
注意:为了得到最好的结果,添加port=8819(或任何其他随机端口)到/etc/my.cnf文件中在重启MySQL之前,然后将--port=8819添加到mysqldump命令中。这种方法避免了MySQL数据库过于系繁忙当修复进程正在进行时。
作者 mushme
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇centos每天自动备份mysql数据库 下一篇MySQL窗口输入密码后消失问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·一篇说人话的文章, (2025-12-27 07:50:09)
·Python Web框架哪家 (2025-12-27 07:50:06)
·基于Python的数据分 (2025-12-27 07:50:03)
·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)