php - Mysql/InnoDB 停止在 Linode 服务器上工作

标签 php mysql server innodb

我的 MySQL 服务器没有启动。当我检查 error.log 文件时,我发现了这个。你能建议我做什么吗?

151113  6:59:53 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
151113  6:59:53 [Note] Plugin 'FEDERATED' is disabled.
151113  6:59:53 InnoDB: The InnoDB memory heap is disabled
151113  6:59:53 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151113  6:59:53 InnoDB: Compressed tables use zlib 1.2.3.4
151113  6:59:53 InnoDB: Initializing buffer pool, size = 128.0M
151113  6:59:53 InnoDB: Completed initialization of buffer pool
InnoDB: Error: checksum mismatch in data file ./ibdata1
151113  6:59:53 InnoDB: Could not open or create data files.
151113  6:59:53 InnoDB: If you tried to add new data files, and it failed here,
151113  6:59:53 InnoDB: you should now edit innodb_data_file_path in my.cnf back
151113  6:59:53 InnoDB: to what it was, and remove the new ibdata files InnoDB created
151113  6:59:53 InnoDB: in this failed attempt. InnoDB only wrote those files full of
151113  6:59:53 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
151113  6:59:53 InnoDB: remove old data files which contain your precious data!
151113  6:59:53 [ERROR] Plugin 'InnoDB' init function returned error.
151113  6:59:53 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
151113  6:59:53 [ERROR] Unknown/unsupported storage engine: InnoDB
151113  6:59:53 [ERROR] Aborting

151113  6:59:53 [Note] /usr/sbin/mysqld: Shutdown complete

最佳答案

我刚遇到这个,最初在 dmesg 中显示为“mysql respawning too fast ”错误日志。

来自 reading elsewhere我将其追溯到您发现的内容,我认为这表明 InnoDB 的元数据文件中存在某种损坏。 InnoDB 做的事情包括确保事务/回滚完整性和主外键完整性。这就是“校验和不匹配”错误警告您的原因。

你没有说你是如何启动 mysqld 的,但也许你在 /etc/init.d/mysqld start 上使用了一些变体。或 service mysqld start .而是将守护程序明确地作为命令运行:

sudo /usr/sbin/mysqld --innodb_force_recovery 0

并且,只要您知道自己为什么这样做,就可以逐渐增加 --innodb_force_recovery 的零值。直到进程开始。

警告:innodb_force_recovery参数确定 mysqld 将尝试“强制修复”InnoDB 存储中的校验和错误的严重程度。所以你可以使问题变得更糟,或者需要稍后重建索引,如果你在这里强制修复一个高数字,因为 InnoDB 会做越来越多的事情来尝试修复自己。

每次重启失败mysqld有一个特定的数字,例如2 ,您应该在将其递增到 3 之前搜索收到的错误消息所以你可以确定你做的是正确的事。我不是你可能遇到的每一个错误的专家,所以我不能为每一个异常情况提供反馈:我只是说,使用 --innodb_force_recovery小心!

关于php - Mysql/InnoDB 停止在 Linode 服务器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706106/

相关文章:

php - 如何在 slim 框架上获取环境模式

javascript - 获取 jVectormap 的值。 getElementbyID 不起作用

mysql - 减去 MYSQL 时间戳固定的小时数,其中 ID 是某事

Javascript 无法在 GoDaddy 托管上运行

php - 带时间戳的免费日历

php - Mysqli 不插入任何数据

c - 为什么客户端将网络服务器的消息回显给它?

rest - gRPC 服务器如何调用 REST 端点

mysql - 订单联盟查询

mysql - 连接三个表,其中该术语是排除项