MySQL 启动时的 InnoDB 错误

Posted

技术标签:

【中文标题】MySQL 启动时的 InnoDB 错误【英文标题】:InnoDB Error on MySQL Startup 【发布时间】:2015-04-14 20:10:59 【问题描述】:

启动 mysql 时,我收到以下 InnoDB 错误。

mysqld_safe 使用 /var/lib/mysql 中的数据库启动 mysqld 守护进程 [警告] '--skip-locking' 已弃用,将在未来的版本中删除。请改用“--skip-external-locking”。 [警告] 'record_buffer' 已弃用,将在未来版本中删除。请改用“read_buffer_size”。 [注意] 插件 'FEDERATED' 已禁用。 InnoDB:初始化缓冲池,大小 = 8.0M InnoDB:缓冲池初始化完成 日志文件 ./ib_logfile0 大小不同 0 503316480 字节 InnoDB:比 .cnf 文件中指定的 0 5242880 字节! [错误] 插件“InnoDB”初始化函数返回错误。 [错误] 插件“InnoDB”注册为存储引擎失败。 [注意] 事件调度器:加载了 0 个事件 [注意] /usr/sbin/mysqld:准备连接。 版本:'5.1.73' 套接字:'/var/lib/mysql/mysql.sock' 端口:12485 MySQL 社区服务器(GPL) [注意] /usr/sbin/mysqld:正常关机

my.conf的内容是:

[mysqld] 本地文件=0 端口 = 12485 #skip-innodb #socket=/var/lib/mysql/mysql.sock #innodb_log_file_size=503316480 #innodb_force_recovery=6 跳跃锁定 query_cache_limit=1M query_cache_size=4M query_cache_type=1 max_allowed_pa​​cket=800M 最大连接数=2000 交互超时=1000 等待超时=1000 连接超时=100 线程缓存大小=8 key_buffer=8M join_buffer=1M 表缓存=100 记录缓冲区=1M sort_buffer_size=2M read_buffer_size=2M max_connect_errors=200 线程并发=1 myisam_sort_buffer_size=4M 服务器 ID=1 [安全_mysqld] 错误日志=/var/log/mysqld.log open_files_limit=400 [mysql转储] 快的 [mysql] #default-storage-engine=myisam 没有自动重新散列 #安全更新 [isamchk] key_buffer=4M 排序缓冲区=4M read_buffer=4M write_buffer=4M [myisamchk] key_buffer=4M 排序缓冲区=4M read_buffer=4M write_buffer=4M

【问题讨论】:

【参考方案1】:

它不会启动,因为您更改了 innodb 日志文件大小的大小(或者在这种情况下;您已对其进行了注释,而 MySQL 现在正在使用默认值)。

log file ./ib_logfile0 is of different size 0 503316480 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!

如果您的 MySQL 数据库中有数据,我建议您通过删除井号将 innodb 日志文件大小值恢复为原始值:

innodb_log_file_size=503316480

另外,如果您真的有兴趣更改此设置;知道这很棘手,因为您最终可能会丢失数据。 如果您确实需要更改此设置,请按照 MySQL.com 上的指南进行操作:http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html

【讨论】:

我拥有超过 200 个 sql 数据库。请解释更多 请帮助我真的很痛苦 出于数据完整性的原因,MySQL 不允许您即时更改该设置。如果将 innodb_log_file_size 设置恢复为原始值,则不会丢失任何数据。 现在我有另一个问题***.com/questions/28510472/… 阅读问题 - 您可能遇到了崩溃或硬件故障。不幸的是,我从未尝试过 InnoDB 恢复。我只知道它是手动的,您需要重新创建每个损坏的表。见dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

以上是关于MySQL 启动时的 InnoDB 错误的主要内容,如果未能解决你的问题,请参考以下文章

mysql服务启动不了,下面是mysql的错误日志

mysql 启动错误(InnoDB: Operating system error number 1

mysql启动错误处理

Amazon EC2,mysql 中止启动,因为 InnoDB:mmap(x 字节)失败;错误号 12

mysql5.7——innodb存储引擎总结

《MySQL系列-InnoDB引擎13》文件-参数文件