无法在 Ubuntu Lucid 上停止 MariaDB

无法在 Ubuntu Lucid 上停止 MariaDB

启动 MariaDB 5.5 时出现以下错误:

InnoDB: Unable to lock /var/lib/mysql/ibdata1

最初在运行 MariaDB 5.1 后重新启动服务器时遇到此错误。已执行多项故障排除步骤,包括:

  • 将 MariaDB 升级到 5.5
  • 移动和复制 ib* 文件
  • 删除 Apparmor(可阻止 syn 溢出错误)

我还遇到了其他错误,例如:

InnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[Note] Plugin 'FEEDBACK' is disabled.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting

但我确信这些只是最初的错误所导致的。

当我停止 MariaDB(/etc/init.d/mysql stop)时,它显示 MariaDB 已成功停止。但是执行 ps -ef | grep mysql 时,那里仍然有一个 PID。

如果我杀死 PID,它会自动重新创建。

此 PID 的 ps 输出为:

mysql     9173     1 17 09:43 ?        00:00:00 /usr/sbin/mysqld

当此 PID 存在时,我可以登录到 MySQL,它显示正常的 SHOW PROCESSLIST,但也有一个休眠查询。

还有其他方法可以尝试解决此问题吗?非常感谢您的帮助。

更新 #1

为了使服务器恢复到已知状态,我已完成:

  • 在进行任何配置更改之前恢复备份
  • 将 MariaDB 更新至版本 5.5
  • 停止 Apache 和 MySQL
  • 请注意,恶意 MySQL PID 仍然存在
  • 将 my.cnf 文件移至新名称
  • 再次停止 MySQL
  • 运行 ps -ef | grep mysql 查看 PID 是否消失,结果是
  • 将 my.cnf 移回
  • 启动 MySQL
  • 注意到只存在有效的 MySQL PID
  • 启动 Apache 后发现无法连接我的网站
  • 让 Joels 更改 my.cnf 文件 (default_storage_engine = InnoDB TO default-storage-engine = innodb)
  • 再次启动 MySQL 和 Apache

目前,无法访问这些网站。系统日志或 Apache 错误日志中没有写入任何异常信息。我就是搞不清楚为什么无法访问这些网站。

但是我的系统日志中出现了这个错误:

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave. Statement: UPDATE thread AS thread,taggregate_temp_1371329760 AS aggregate

有任何想法吗?

更新 #2

我现在在我的系统日志中收到这些错误:

Jun 16 11:31:45 kernel: net_ratelimit: 5 callbacks suppressed
Jun 16 11:31:45 kernel: TCP: Possible SYN flooding on port 80. Sending cookies.

现在重新启动服务器后,我收到此错误和上述错误......

Unable to lock /var/lib/mysql/ibdata1, error: 11

答案1

我以前遇到过这个问题,它与您的 MariaDB 配置有关。您可能在 my.cnf 中指定了一行,如下所示:

default-storage-engine = InnoDB

使用全部小写字母指定存储引擎,如下所示:

default-storage-engine = innodb

相关内容