InnoDB: Erreur: l'espace page d'en-tête se compose de zéro octets dans le fichier de données ./ibdata1
J'ai eu un parfait programme d'installation de wordpress, mais aujourd'hui, le serveur a soudainement cessé de chargement de mon site. Je me suis connecté et redémarré mon centos 7 VPS. Après le redémarrage il n'a pas commencé le MariaDB.
Voici ce que j'ai trouvé dans mon journal:
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
Quelqu'un peut-il m'aider à enquêter sur ce que pourrait être le problème?
Est-il possible maintenant, pour la sauvegarde de ma base de données sans être en mesure de commencer à MariaDB?
OriginalL'auteur Peter | 2014-10-26
Vous devez vous connecter pour publier un commentaire.
Modifier: copié
my-innodb-heavy-4G.cnf
à/etc/my.cnf.d
et le serveur est démarré bien. Probablement causé par le changement de binlog taille.Il sonne comme vous avez modifié la taille de votre InnoDB tampon, ou il est devenu corrompu. Possible que ces changements ont été faits il y a quelques temps et a juste pris effet lorsque vous avez redémarré.
Certainement faire une sauvegarde de vos données en
/var/lib/mysql
de première préférence, l'ensemble du répertoire.Avec vos données sauvegardées, la première étape est de retourner toutes les modifications que vous avez apportées à la
/etc/my.cnf
fichier et redémarrez.Si ne le font pas, ou vous ne savez pas ce que la taille de votre tampon utilisé pour être, la prochaine option possible est de supprimer la InnoDB binlog fichiers et faites MariaDB/MySQL recréer. Les fichiers sont nommés
/var/lib/mysql/ib_logfile{N}
où{N}
est un nombre.Si cela ne résout pas le problème, essayez d'ajouter les éléments suivants à votre
/etc/my.cnf
(ou n'importe quel fichier de configuration que vous utilisez, sauvegarde tout d'abord, bien sûr). Il faut aller dans le[innodb]
section.L'astuce est de savoir ce que MariaDB attend. Si vous n'avez pas de succès avec les au-dessus d'essayer juste la dernière ligne et définir
[innodb_flush_method]
.Voir mes modifications pour certains plus de choses à essayer - je devine que c'est un VPS et peut avoir été déplacé vers un nouvel hyperviseur lorsque vous avez redémarré?
Il n'y a pas de [innodb] article dans mon.cnf donc j'ai ajouté un et copié ce que vous avez écrit et il n'a pas aidé. J'ai essayé d'ajouter juste innodb_flush_method = normal qui n'a pas aidé non plus. Oui, c'est un VPS. Je ne suis pas au courant qu'il aurait été déplacé vers un nouvel hyperviseur. Avez-vous des suggestion? il serait très important de récupérer la base de données.
Désolé, juste une double vérification de mon serveur, et ces paramètres sont sous
[mysqld]
- vous avez raison, il n'y a pas de[innodb]
section. Ma config utilise également/etc/my.cnf
pour charger tous les cnf fichiers dans/etc/my.cnf.d/
, mais je suis sur CentOS 5. Je n'ai aucune idée de ce qui peut arriver lorsque vous avez redémarré, mais comme c'est un VPS en théorie, il pourrait être sur un hôte différent, avec des réglages différents... peu probable, mais possible.bonne prise, et pertinent depuis que j'utilise CentOS 🙂 - ici sont toutes les options valides pour toute personne à la recherche de: dev.mysql.com/doc/refman/5.7/en/...
OriginalL'auteur doublesharp
Si vous avez rencontré ce problème lors de l'installation de MySQL initialement, il suffit de retirer
ibdata
etib_logfile*
dans vos fichiers de données MySQL répertoire, et puis commencer à MySQL de nouveau.Bonne Chance!
OriginalL'auteur robinwen