【问题标题】:MySQL corrupts after every server restart每次服务器重新启动后 MySQL 都会损坏
【发布时间】:2015-11-04 20:58:50
【问题描述】:

我有一个奇怪的问题。我在 Windows 环境中运行 MySQL 和 Drupal 站点(不是通过选择,而是事情已经解决了),并且大多数情况下站点都很好,但是每次重新启动服务器时(从更新或维护) MySQL数据库将损坏。

当我登录 MySQL Work bench 时,我注意到服务器状态已停止,当我尝试启动它时出现错误:

ERROR 致命错误:无法打开和锁定权限表:找不到文件:'user'(errno:2 - 没有这样的文件或目录)

然后 MySQL 服务器无法重新启动。

解决此问题的唯一方法是删除 ProgramData/MySQL 中的数据文件夹,然后将其替换为全新安装的 MySQL 的备份,然后导入我的表的备份并重新创建我的用户。

我的问题是,是什么导致 MySQL 在每次服务器重启时损坏,我可以做些什么来防止这种情况继续发生?

【问题讨论】:

    标签: mysql windows iis drupal


    【解决方案1】:

    当mysql在数据目录中找不到或没有user.MYD或user.MYI或user.frm的权限时会发生这种情况。启动 mysql 时,请确保这些文件存在于数据目录中。你可以在mysql没有启动时复制这些文件

    【讨论】:

    • 这有帮助,但问题是为什么会发生这种情况?
    • 我不确定 Windows。 MySQL 不会删除它们,除非有人执行 drop table mysql.user 如果文件丢失,则意味着某些 cron 或某些进程正在删除它们
    • 好的,谢谢。好吧,我可以向您保证,没有人正在删除表,我会觉得奇怪的是,Windows 关闭过程的某些部分会从程序数据文件夹中删除文件,但我会在下次 MySQL 损坏时检查这些文件的状况
    • 我在周末遇到了另一个错误,你是对的,从数据文件夹中删除了 User.MYD 和 User.MYI。知道在关闭时可能会删除这些内容,因为这真是奇怪的行为。
    • 什么是版本?你也可以用--skip-grant-tables 启动mysql,然后从转储文件中加载用户表
    【解决方案2】:

    这对我有用: 坚持使用 32 位。

    卸载并确保在安装之前删除 mysql-data 文件夹及其所有子文件夹,并且更喜欢使用 32 位(有时 64 位版本会出现问题)。

    (Source)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多