我无法使用brew 找到MariaDB 版本10.4.13。通过卸载和安装(严重错误)Homebrew 重新安装后,将我的版本升级到 10.5.5
现在我收到以下错误:
020-08-14 20:33:07 0 [注意] InnoDB:使用事件互斥体
2020-08-14 20:33:07 0 [注意] InnoDB:压缩表使用 zlib 1.2.11
2020-08-14 20:33:07 0 [注意] InnoDB:池数量:1
2020-08-14 20:33:07 0 [注意] InnoDB:使用SSE4.2 crc32指令
2020-08-14 20:33:07 0 [注意] InnoDB:初始化缓冲池,总大小 = 268435456,块大小 = 134217728
2020-08-14 20:33:07 0 [注意] InnoDB: 缓冲池初始化完成
2020-08-14 20:33:07 0 [错误] InnoDB:不支持崩溃后升级。重做日志是使用 MariaDB 10.4.13 创建的。
2020-08-14 20:33:07 0 [错误] InnoDB:插件初始化因错误一般错误而中止
2020-08-14 20:33:07 0 [注意] InnoDB: 开始关闭...
2020-08-14 20:33:07 0 [错误]插件“InnoDB”初始化函数返回错误。
2020-08-14 20:33:07 0 [错误] 插件“InnoDB”注册为存储引擎失败。
2020-08-14 20:33:07 0 [注意] 插件“反馈”已禁用。
2020-08-14 20:33:07 0 [错误]未知/不支持的存储引擎:InnoDB
2020-08-14 20:33:07 0 [错误] 正在中止
任何帮助将不胜感激。我的数据目录仍然在 /var/log/mysql 之外的某个地方。
我找到的唯一方法是通过重命名我的
/var/lib/mysql
和 /var/lib/mariadb
目录来备份它们,然后将它们创建为空目录。我知道这对很多人来说不是一个选择,如果您仍在开发和处理种子数据,这应该适合您。
有人谈论从这些目录中删除日志文件,从而保留数据,尽管我还没有尝试过。
据报道已删除日志文件以解决此问题:
/var/lib/mysqld/ib_logfile0
/var/lib/mysql/ib_logfile1
/var/lib/mysql/aria_log_control
错误消息
2020-08-14 20:33:07 0 [ERROR] InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.4.13.
是关键方面。
发生的情况是服务器崩溃了(被用户或操作系统强制终止),并且当安装新版本时,它无法识别旧的重做日志格式。
解决方案是在同一数据目录上启动 MariaDB-10.4 实例,然后彻底关闭它。可以通过查看日志中的最后一条消息“关闭完成”来识别清洁度。
之后,您可以在同一数据目录上启动任何较新版本的 MariaDB。
由于在某些打包系统中降级可能很困难,因此您应该以正确的权限运行
mariadb:10.4
使用与卷相同的数据目录 /var/lib/mysql
的 Docker 官方镜像容器并实现相同的目标。
不要去删除Innodb或Aria文件。它们存储尚未写入表空间的更改以及潜在的内部更改。通过删除它们,您可以很容易地获得损坏的数据库。在 10.11+ 中,如果没有这些文件,它就不会启动,以突出显示删除它们是一个错误的选择。