Pet*_*ter 6 database wordpress centos mariadb centos7
我有一个非常好的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
Run Code Online (Sandbox Code Playgroud)
有人可以帮我调查可能是什么问题吗?现在有可能备份我的数据库而无法启动MariaDB吗?
dou*_*arp 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
Run Code Online (Sandbox Code Playgroud)
诀窍是了解MariaDB的期望.如果你没有成功,请尝试最后一行并设置[innodb_flush_method]
.