【问题标题】:mysql not working , it is not startingmysql不工作,它没有启动
【发布时间】:2016-08-15 14:10:18
【问题描述】:

这里有一些错误日志。

160422 10:45:00 [Note] InnoDB: The log sequence numbers 1665244 and 1665244   in ibdata files do not match the log sequence number 15857945 in the ib_logfiles!
160422 10:45:00 [Note] InnoDB: Database was not shutdown normally!
160422 10:45:00 [Note] InnoDB: Starting crash recovery.
160422 10:45:00 [Note] InnoDB: Reading tablespace information from the .ibd files...
160422 10:45:00 [Note] InnoDB: Restoring possible half-written data pages 
160422 10:45:00 [Note] InnoDB: from the doublewrite buffer...
160422 10:45:00 [Note] InnoDB: 128 rollback segment(s) are active.
160422 10:45:00 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.22-72.0 started; log sequence number 15857945
160422 10:45:00 [Note] InnoDB: !!! innodb_force_recovery is set to 2 !!!
160422 10:45:00 [Note] Plugin 'FEEDBACK' is disabled.
160422 10:45:00 [Note] Server socket created on IP: '::'.
160422 10:45:00 [ERROR] mysqld.exe: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
160422 10:45:00 [ERROR] Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed

请有人帮忙,我有一个重要的数据库,我没有备份它,我早些时候发布了这个问题,但没有得到答案......这开始于我试图访问 phpmyadmin 时,从那时起 mysql 不是开始。

【问题讨论】:

标签: mysql xampp


【解决方案1】:

我看到了两种可能的方法。

以下:

Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed

如果是 MyISAM DB,你可以使用 mysqlcheck 来修复它。如果它是 InnoDB 数据库,请尝试 InnoDB 强制恢复选项。您可以使用 InnoDB 强制恢复启动您的数据库并从中获取数据库转储,以在全新的 MySQL 安装上恢复它。

以后,请尝试启用 innodb_file_per_table 选项。

现在,第二个选项。尽管第一个看起来最有可能。

The log sequence numbers 1665244 and 1665244   in ibdata files do not match the log sequence number 15857945 in the ib_logfiles!

如果第一种方法不起作用,试试这个。看起来 ib_logfiles 已损坏,我之前遇到过这个问题并使用以下步骤来启动我的数据库并正常工作:

  1. 在另一个目录中完整备份您的 mysql 数据目录。
  2. 确保 mysql 服务已停止。
  3. 删除 ib_logfile1 和 ib_logfile2
  4. 启动 MySQL 服务

希望对你有帮助

【讨论】:

  • 在我删除日志数据和另外两个日志文件后,它说一些操作系统,错误
  • 我没有得到你的第一点?我想我已经尝试过 innodb_force_recovery =1 或 2 ,它说它无法恢复
  • 我又试了一次,它说 innodb_force_recovery 设置为 1 !!! . 160422 11:18:56 [错误] mysqld.exe:表 '.\mysql\db' 被标记为崩溃并且最后一次(自动?)修复失败 160422 11:18:56 [错误] 致命错误:无法打开和锁定特权表:表 '.\mysql\db' 被标记为已崩溃且最后一次(自动?)修复失败
  • 请尝试我添加的新答案。
  • 谢谢兄弟,但是我卸载了xampp并重新安装了它,我已经保存了prev xampp的数据文件夹,我想要一个特定的数据库,我在prev xampp的数据文件夹中有它的文件夹,名为'mydbrun ' .我将此文件夹粘贴在新安装的数据文件夹中。但是当我看到 phpmyadmin 时,只有数据库名称和表名存在,但没有这些表的内容甚至结构...你能帮我吗?我可以这样恢复数据库吗?
【解决方案2】:

Rishav,innodb_force_recovery 不会恢复任何东西。这是您启动 mysql 的一种模式。一旦它开始,你应该能够进行转储。以下应该是步骤:

恢复它的步骤。

1. Stop mysqld.
2. Backup /var/lib/mysql/ib*
3. Add the following line into /etc/my.cnf
innodb_force_recovery = 4
4. Restart mysqld.
5. Dump your DB using mysqldump to a dump.sql file.
6. Drop all databases which need recovery.
7. Stop mysqld.
8. Remove /var/lib/mysql/ib*
9. Comment out innodb_force_recovery in /etc/my.cnf
10. Restart mysqld. Look at mysql error log. By default it should be /var/lib/mysql/server/hostname.com.err to see how it creates new ib* files. (Although, I recommend a fresh setup here)
11. Restore databases from the dump:mysql < dump.sql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2017-05-30
    相关资源
    最近更新 更多