J'ai récemment mis à jour Precision depuis l'ancienne LTS Ubuntu et maintenant, mysql refuse de démarrer. Lorsque je tente de le démarrer, il se plaint de ce qui suit:
╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
Et cela apparaît dans "/var/log/mysql/error.log":
120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting
120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete
J'ai vérifié les permissions sur tous les répertoires mysql pour m'assurer qu'ils étaient bien possédés et j'ai également renommé ibilogs afin qu'il puisse les refaire. Je n’obtiens tout simplement aucune réponse à ce problème après avoir consulté les résultats de Google pendant 2 heures.
Réponses:
Après avoir vérifié les journaux, j'ai trouvé l'erreur suivante:
J'ai supprimé ces fichiers:
à
/var/lib/mysql
Cela a résolu mon problème après le redémarrage.
la source
rm
commande est utilisée pour supprimer des fichiers plutôt que de les renommer pour autant que je sache ...ibdata
fichier contient les données (sauf si vous avez un fichier par table). Les fichiers ib_logfile sont les journaux de relecture contenant les données des transactions de modification de base de données éventuellement en cours de traitement lorsque / si la base de données s'est écrasée. Si vous avez réussi à arrêter le serveur, la suppression de ces fichiers journaux ne vous fera pas de mal. S'il s'est écrasé, vous en avez besoin. Mais c'est une réponse valable. Si votre fichier my.cnf modifie l'option innodb_log_file_size et qu'il ne correspond plus à ces deux fichiers, vous obtiendrez le message d'erreur que l'OP indique. Supprimer / déplacer afin que de nouveaux puissent être corrigés.mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
.Si vous avez réellement besoin
skip-innodb
(cas d'utilisation: faible empreinte mémoire), vous n'avez évidemment pas à le commenter. Cependant, si InnoDB est le moteur de stockage par défaut, le serveur ne pourra pas démarrer tant que vous ne lui indiquerez pas le moteur de stockage à utiliser à la place, par exempledefault-storage-engine=myisam
pour MyISAM.Alors, essayez ceci:
la source
default-storage-engine=myisam
le fichier /etc/my.cnf sous[mysqld]
. Cela a fait le tour. MerciSi vous utilisez MySQL 5.6+ et que vous souhaitez désactiver InnoDB, n'oubliez pas " --default-tmp-storage " ou cela ne fonctionnera pas:
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb
Vous pouvez ajouter ceci à votre my.cnf:
juste pour m'assurer que ça va marcher.
la source
default-storage-engine
etdefault-tmp-storage-engine
, merci.Vérifiez votre journal d'erreur mysql.
Si votre journal dit (comme le mien):
Vous n'avez pas assez de mémoire pour utiliser la taille de tampon par défaut de 128M
Editez le fichier de configuration /etc/mysql/my.cnf en ajoutant une ligne pour spécifier un plus petit innodb_buffer_pool_size.
Enregistrez le fichier de configuration et démarrez mysql
la source
Essayez encore 2 choses. 1. Réduisez la taille du pool de mémoire tampon innodb. 2. Modifiez le script initial mysql et ajoutez l'option --innodb.
Je me demande aussi si votre paquet est buggy. Pourriez-vous essayer une version mineure différente?
De plus, je suppose que votre serveur mysql a également été mis à niveau? Peut-être que cette version est cassée? La précision n'est pas encore définitive.
la source
J'ai eu cette erreur lorsque j'ai supprimé l'emplacement que j'utilise
tmpdir
. Si vous avez récemment changé votretmpdir
, vous voudrez peut-être vérifier qu'il s'agit d'un emplacement valide, accessible en écriture.la source