Ubuntu 升级后,ib_logfile0 大小 44895232 不是 innodb_page_size 的倍数

Ubuntu 升级后,ib_logfile0 大小 44895232 不是 innodb_page_size 的倍数

我正在将 Ubunto 从 18 升级到 20,并且在 mysql 升级期间丢失了 SSH。

Mysql 现在无法启动。它出现以下错误:

ib_logfile0 size 44895232 is not a multiple of innodb_page_size after Ubuntu upgrade

InnoDB:错误:日志文件 ./ib_logfile0 大小不同我尝试了这里的建议,但没有成功。

2022-07-25T17:25:13.890483Z 1 [ERROR] [MY-012962] [InnoDB] Log file ./ib_logfile0 size 44895232 is not a multiple of innodb_page_size
2022-07-25T17:25:13.890544Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-07-25T17:25:14.375381Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-07-25T17:25:14.375568Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-07-25T17:25:14.375652Z 0 [ERROR] [MY-010119] [Server] Aborting

我发现的几乎所有帖子都有相同的建议,所以我很困惑。

  1. 删除了 2 个日志文件

  2. 按照另一篇文章中的说明设置我的 innodb 设置(见下文)

     innodb_fast_shutdown =0
     innodb_buffer_pool_size = 2560M
     innodb_log_file_size    = 256M
     innodb_log_buffer_size  = 8M
     innodb_flush_log_at_trx_commit  = 2
     innodb_thread_concurrency   = 16
     innodb_flush_method = O_DIRECT
    

答案1

innodb_page_size 默认为 16K,即 16384,而您的 innodb_log_file_size 似乎在升级过程中中途损坏。当您说您丢失了 ssh 时,这是否意味着服务器已重新启动?您可能需要备份 ib_logfile0 并移出数据目录,然后尝试使用 innodb_page_size 作为默认值启动 mysql。您的数据字典已使用 16k 页面大小创建,因此它不会接受新值。

从 conf 中删除 innodb_page_size 变量并让其成为默认值。备份 ib_logfile0 并将其移出数据目录。当您启动 mysql 时,它将生成一个新的。如果有更多错误,请发布。

相关内容