web-dev-qa-db-fra.com

MySQL ne démarre pas du tout

C'est génial hier, j'ai eu la même erreur et je l'ai déboguée mais aujourd'hui je ne me souviens plus quoi faire depuis que je l'ai fait pour jeûner.

Quand je fais:

service mysql start

Je reçois ce message:

Job for mysql.service failed. See 'systemctl status mysql.service' and 'journalctl -xn' for details.

Pour cette raison, j'ai fait: systemctl status mysql.service

et obtenir:

Apr 16 18:11:25 darphus.xen.prgmr.com systemd[1]: Unit mysql.service entered failed state.
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: mysql.service holdoff time over, scheduling restart.
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: Stopping MySQL Community Server...
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: Starting MySQL Community Server...
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: mysql.service start request repeated too quickly, refusing to start.
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: Failed to start MySQL Community Server.
Apr 16 18:11:26 darphus.xen.prgmr.com systemd[1]: Unit mysql.service entered fai

journalctl -xn donne:

Logs begin at Sun 2017-04-16 17:58:44 UTC, end at Sun 2017-04-16 18:16:35 UTC
Apr 16 18:16:34 darphus.xen.prgmr.com postfix/pickup[938]: warning: 868F625E66: 
Apr 16 18:16:34 darphus.xen.prgmr.com postfix/pickup[938]: 868F625E66: uid=0 fro
Apr 16 18:16:34 darphus.xen.prgmr.com postfix/proxymap[941]: warning: mysql:/etc
Apr 16 18:16:34 darphus.xen.prgmr.com postfix/cleanup[1361]: warning: proxy:mysq
Apr 16 18:16:34 darphus.xen.prgmr.com postfix/cleanup[1361]: warning: 868F625E66
Apr 16 18:16:35 darphus.xen.prgmr.com postfix/pickup[938]: warning: 8744E25E66: 
Apr 16 18:16:35 darphus.xen.prgmr.com postfix/pickup[938]: 8744E25E66: uid=0 fro
Apr 16 18:16:35 darphus.xen.prgmr.com postfix/proxymap[941]: warning: mysql:/etc
Apr 16 18:16:35 darphus.xen.prgmr.com postfix/cleanup[1362]: warning: proxy:mysq
Apr 16 18:16:35 darphus.xen.prgmr.com postfix/cleanup[1362]: warning: 8744E25E66

Je pense que j'ai essayé toutes les astuces sur Internet et rien ne fonctionne pour aujourd'hui.

S'il vous plaît, aidez-moi, car tous mes sites Web sont fermés pour cette raison.

9
user3162862

Le réponse par @Lotfio Lakehal résoudra vos problèmes mais devrait être considéré comme un dernier recours - vous ne voudrez certainement pas l'exécuter sur une base de données contenant les données dont vous avez besoin car il supprimera toutes vos valeurs de configuration Dans le processus. Une meilleure façon serait de trouver la cause du problème dans votre my.cnf et de le corriger. MySQL a cette capacité intégrée.

mysqld --help --verbose

La commande ci-dessus simulera le démarrage de votre serveur mysql. S'il ne le peut pas, il affichera un message d'erreur et une description de ce qui ne va pas avec les fichiers de configuration.

Par exemple, j'ai mis en place un fichier de configuration de test avec des données non valides et lorsque j'ai exécuté la commande ci-dessus, j'ai obtenu ce qui suit:

erreur: option trouvée sans groupe précédent dans le fichier de configuration: /etc/mysql/my.cnf à la ligne: 22

Cela me permet d'accéder facilement au fichier de configuration et de supprimer ou de modifier la configuration incriminée, espérons-le, vous permettant de corriger ledit fichier de configuration sans avoir à réinstaller complètement le serveur.

Juste pour clarifier cela, ce n'est en aucun cas une réprimande réponse , la réponse précédente résoudra 99% de tous les problèmes, mais devrait être considérée comme un dernier recours. Idéalement, vous souhaitez résoudre le problème et comprendre pourquoi il s'est produit afin de ne pas commettre les mêmes erreurs à l'avenir.

11
James Lendrem

Habituellement, ce problème apparaît lorsque vous essayez de modifier quelque chose dans le /etc/mysql/my.cnf.

[~ # ~] avertissement [~ # ~] La solution suivante supprimera toutes vos données de base de données! Essayez d'abord d'autres solutions.

La réinstallation de MySQL peut résoudre le problème, mais ne doit être utilisée qu'en dernier recours! Pour réinstaller:

Sudo apt purge mysql-server mysql-common

Sudo apt autoremove mysql-server mysql-common

et réinstallez-le à nouveau

Sudo apt-get update Sudo apt-get install mysql-server

vérifiez ceci: https://askubuntu.com/questions/392438/mysql-job-failed-to-start

note: Cette solution supprimera toutes vos données de base de données! Soyez donc conscient de ce que vous faites.

9
lotfio

J'ai eu le même problème avec Ubuntu 18.04 avec mysql 5.7

Dans les fichiers journaux, j'ai trouvé les lignes suivantes:

Jul 13 01:25:35 r-lap audit[11196]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=11196 comm="mysqld" req
Jul 13 01:25:35 r-lap kernel: audit: type=1400 audit(1531425335.671:116): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/

À l'arrêt de l'apparmor, le démarrage de mysql a réussi avec un message indiquant que la prise en charge ssl n'a pas pu être activée. Arrêtez le service.

Pour générer les certificats, exécutez

Sudo mysql_ssl_rsa_setup --datadir /var/lib/mysql

Le datadir peut être différent dans votre cas. Alors fais

Sudo -i
cd /var/lib/mysql 
chown mysql:mysql ./*

Cela définira les autorisations pour les fichiers de certificats et de clés générés correctement.

Ensuite, vous pouvez démarrer à la fois apparmor puis mysql.

Cela a résolu le problème dans mon cas.

Comme je n'ai pas essayé séparément, je ne sais pas si c'est le redémarrage de l'apparmeur ou la génération de la clé SSL et des certificats qui a résolu le problème.

Remarque : J'ai découvert plus tard ce fil

2
DebD

J'ai eu le même problème avec Ubuntu 18.04 avec mysql 5.7. La première chose que j'ai faite a été d'aller dans le journal des erreurs mysql, il devrait être dans /var/log/mysql/error.log.

Là, j'ai trouvé la ligne suivante:

[ERROR] InnoDB: Cannot allocate memory for the buffer pool

Cela ressemblait donc à un problème de mémoire, j'ai vérifié le syslog pour les mentions de MySQL:

grep mysql syslog

Qui a affiché ceci:

kernel: [21270406.665399] Out of memory: Kill process 9674 (mysqld) score 251 or sacrifice child

J'ai vérifié que j'avais de la "mémoire disponible" sous forme de swap.

free -m

Qui a affiché ceci:

total used free shared buff/cache available Mem: 985 522 69 45 393 276 Swap: 0 0 0

Cela signifiait que nous devions configurer l'espace d'échange:

Swap: 0 0 0

Dans mon cas, mysql est sur DigitalOcean et leurs guides sont super donc je vous remets à ce qui suit: Comment ajouter de l'espace de swap sur Ubuntu 18.04

1
Ximix

Cette réponse doit être lue conjointement avec @ "James Lendrem" réponse .

Si vous avez modifié ou ajouté quelque chose aux fichiers de configuration mysql, essayez de supprimer ce que vous avez fait.

Vérifiez d'abord le fichier syslog, qui peut vous donner un indice:

grep mysql /var/log/syslog | grep ERROR

Cette commande recherche dans le syslog toute référence au terme "mysql", puis limite ces résultats à ceux contenant "ERREUR".

Regardez ensuite dans les différents fichiers de configuration. Si vous avez modifié un fichier de configuration spécifique, commencez par là. Sinon, regardez dans tous les fichiers de configuration de ces répertoires:

ls -l /etc/mysql/*.cfg
ls -l /etc/mysql/mysql.conf.d/
ls -l /etc/mysql/conf.d/

Si vous changez quelque chose dans l'un des fichiers de configuration, (re) démarrez le serveur mysql:

service mysql restart

# or else you could use for the first time:
service mysql start
0
iND