我有一个非常好的wordpress设置,但今天服务器突然停止加载我的网站。我登录并重新启动了我的centos 7 VPS。重新启动后,它没有启动MariaDB。 这是我在日志中找到的内容:
141026 18:13:50 [Note] /usr/libexec/mysqld: Shutdown complete
141026 18:13:50 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended
141026 18:14:58 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141026 18:14:58 InnoDB: The InnoDB memory heap is disabled
141026 18:14:58 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141026 18:14:58 InnoDB: Compressed tables use zlib 1.2.7
141026 18:14:58 InnoDB: Using Linux native AIO
141026 18:14:58 InnoDB: Initializing buffer pool, size = 128.0M
141026 18:14:58 InnoDB: Completed initialization of buffer pool
InnoDB: Error: space header page consists of zero bytes in data file ./ibdata1
141026 18:14:58 InnoDB: Could not open or create data files.
141026 18:14:58 InnoDB: If you tried to add new data files, and it failed here,
141026 18:14:58 InnoDB: you should now edit innodb_data_file_path in my.cnf back
141026 18:14:58 InnoDB: to what it was, and remove the new ibdata files InnoDB created
141026 18:14:58 InnoDB: in this failed attempt. InnoDB only wrote those files full of
141026 18:14:58 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
141026 18:14:58 InnoDB: remove old data files which contain your precious data!
141026 18:14:58 [ERROR] Plugin 'InnoDB' init function returned error.
141026 18:14:58 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
141026 18:14:58 [Note] Plugin 'FEEDBACK' is disabled.
141026 18:14:58 [ERROR] Unknown/unsupported storage engine: InnoDB
141026 18:14:58 [ERROR] Aborting
有人可以帮我调查可能出现的问题吗? 现在有可能备份我的数据库而无法启动MariaDB吗?
答案 0 :(得分:10)
修改:将my-innodb-heavy-4G.cnf
复制到/etc/my.cnf.d
,服务器启动正常。可能是由于更改了binlog大小造成的。
听起来你改变了InnoDB缓冲区的大小,或者它已经损坏了。这些更改可能是在前一段时间内完成的,只是在重新启动时生效。
首先在/var/lib/mysql
中备份您的数据 - 最好是整个目录。
cp -R / var / lib / mysql / var / lib / mysql-backup
备份数据后,最好的第一步是还原对/etc/my.cnf
文件所做的任何更改并重新启动。
如果没有这样做,或者您不知道缓冲区的大小,下一个可能的选择是删除InnoDB binlog文件并让MariaDB / MySQL重新创建它们。这些文件名为/var/lib/mysql/ib_logfile{N}
,其中{N}
是一个数字。
rm -rf / var / lib / mysql / ib_logfile *
如果这不能解决问题,请尝试将以下内容添加到/etc/my.cnf
(或您使用的任何配置文件中,当然先备份)。它应该放在[innodb]
部分。
innodb_buffer_pool_size = 256M
innodb_log_file_size = 256M
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = normal
诀窍是了解MariaDB的期望。如果您没有成功完成上述操作,请尝试最后一行并设置[innodb_flush_method]
。
答案 1 :(得分:3)
如果您在最初安装MySQL时遇到此问题,只需删除MySQL数据目录中的ibdata
和ib_logfile*
文件,然后再次启动MySQL。
祝你好运!