我的 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 的情况下备份我的数据库?
Edit: 复制了my-innodb-heavy-4G.cnf
to /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}
where {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]
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)