我正在将 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
我发现的几乎所有帖子都有相同的建议,所以我很困惑。
删除了 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 时,它将生成一个新的。如果有更多错误,请发布。