web-dev-qa-db-fra.com

Échec du démarrage du démon MySQL - centos 6

EDIT: Regardez les commentaires de réponse cochés pour résoudre votre problème.

Chaque fois que j'essaie de démarrer le service SQLD, le démon MySQL échoue. En fait, j'ai essayé de "démarrer" le service en procédant comme suit:

service mysqld start

Également

Quand je tape: mysql

Je reçois:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Je sais qu'il devrait y avoir un fichier mysql.sock dans ce répertoire, donc j'en crée un. Mais le fichier se supprime automatiquement et je continue à obtenir l'erreur 2002.

Je ne parviens pas non plus à me connecter à PHPMyAdmin en raison de l'erreur. Je peux accéder à la page phpmyadmin mais lors de la connexion, j'obtiens: #2002 Cannot log in to the MySQL server

MODIFIER:

Voici mon fichier mysql.log:

131201 13:05:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131201 13:18:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131201 13:18:18 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
131201 13:18:18 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
131201 13:18:18 InnoDB: The InnoDB memory heap is disabled
131201 13:18:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131201 13:18:18 InnoDB: Compressed tables use zlib 1.2.3
131201 13:18:18 InnoDB: Using Linux native AIO
131201 13:18:18 InnoDB: Initializing buffer pool, size = 128.0M
131201 13:18:18 InnoDB: Completed initialization of buffer pool
131201 13:18:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
131201 13:18:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

J'ai couru mysql_upgrade et j'ai

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed
17
Travis

La cause la plus probable de cette erreur est que votre serveur mysql ne fonctionne pas. Lorsque vous tapez mysql, vous exécutez le client mysql.

Essayer:

# Sudo service mysql start
# mysql

Mise à jour (après OP inclus log dans la question; extrait des commentaires ci-dessous):

Merci, j'ai vu votre journal. Le journal indique que l'utilisateur mysql n'a pas les droits d'accès appropriés. Je suppose que votre utilisateur mysql est mysql (cela peut être vérifié dans /etc/my.cnf, exécuter

chown -R mysql:mysql /var/lib/mysql

et essayez de recommencer mysqld.

17
vee

Essayez de redémarrer Apache Sudo service httpd restart. A travaillé pour moi.

18
hexicle

lance ça :

chown -R mysql:mysql /var/lib/mysql

et essayez à nouveau!

12
Mehdi
 /etc/init.d/mysqld stop

  mysqld_safe --skip-grant-tables &

  mysql_upgrade

 /etc/init.d/mysqld stop

 /etc/init.d/mysqld start
5
guru rajender

Vous devrez peut-être libérer de l'espace sur la partition racine (/). Arrêtez le processus mysql en:

/etc/init.d/mysql stop

Supprimez une base de données inutilisée de mySql par commande:

rm -rf [Database-Directory]

Exécutez-le dans /var/lib/mysql. Maintenant, si vous exécutez df -h, vous pouvez être confus par l'espace encore plein. Pour supprimer le répertoire de la base de données inutilisé, vous devez supprimer les processus utilisant le répertoire/la partition actuelle.

Arrêt mysql_safe ou mysqld_safe puis mysqld:

ps -A

Trouvez ensuite le numéro de processus de mysql (par exemple 2234). Exécutez ensuite:

kill 2234

Maintenant recommencez mysql:

/etc/init.d/mysql start
4
Mohsen Abasi

Encore une autre astuce qui a fonctionné pour moi. Exécutez la commande:

$ mysql_install_db
3
dxvargas
  1. /etc/init.d/mysql stop
  2. chown -R mysql:mysql /var/lib/mysql
  3. mysql_install_db
  4. /etc/init.d/mysql start

Tout cela a sauvé mon serveur MySQL!

2
Dmitry Kovalev

J'ai eu le même problème. Lorsque j'ai vérifié le fichier error.log, j'ai constaté que mon disque était plein.

Utilisation:

df -h 

sur la ligne de commande. il vous indiquera combien d'espace il vous reste. le mien était plein. trouvé mon fichier error.log était de 4,77 Go. Je l'ai téléchargé puis supprimé. Ensuite, j'ai utilisé le service mysqld start et cela a fonctionné.

1
Ken

essayer

netstat -a -t -n | grep 3306 

pour voir quelqu'un écouter le port 3306 puis le tuer

J'avais ce problème depuis 2 jours. En essayant les solutions publiées sur les forums, j'ai accidentellement rencontré une situation où mon journal recevait cette erreur

vérifiez que vous n'avez pas encore un autre processus mysqld

1
Harry

Pour ceux qui seront ici à l'avenir, si toutes les méthodes ci-dessus ne fonctionnent pas, vérifiez le fichier my.cnf en:

$ Sudo gedit /etc/my.cnf

Trouvez le début de la ligne avec:

bind-address=[an-IP-address]

Vérifiez si l'adresse IP après le signe égal est correcte. Si vous ne savez même pas ce qu'est l'IP, utilisez simplement localhost, alors vous ne pourrez vous connecter à MySQL qu'à l'intérieur du même hôte.

Si vous souhaitez vous connecter à MySQL à distance, vous devez réellement commenter cette ligne entièrement, puis il écoutera sur toutes les adresses IP et tous les ports dont vous avez besoin car vous vous y connecterez à distance via IPv4 public.

Après cela, ajoutez un utilisateur pour accéder à votre base de données tel que:

mysql> GRANT ALL ON database_name.* TO [email protected] IDENTIFIED BY 'your_password';

Remplacez xx.xx.xx.xx par votre adresse IP locale de votre ordinateur portable/de bureau ou si elle est dynamique, vous pouvez les ajouter en: '192.168.0.%' En tant que classe C dynamique ou '%' si vous le souhaitez pour pouvoir se connecter de n'importe où (c'est moins sécurisé)

De plus, si un pare-feu est installé, il faut ouvrir le port sur le pare-feu;

Par exemple dans Ubuntu:

Sudo ufw allow 3306/tcp
Sudo service ufw restart

Maintenant, vérifiez si le service peut être démarré par:

$ Sudo service mysqld start
1
Duc Filan

Votre base de données a été fermée en raison d'une mémoire insuffisante! Vous pouvez modifier le fichier my.cnf base ci-dessous graphique pour le résoudre

performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128
1
haichao hu

RE: Le démon MySQL n'a pas pu démarrer - centos 6/RHEL 6

  1. Yum Install MySQL
  2. /etc/init.d/mysqld start Le démon MySQL n'a pas pu démarrer. Démarrage de mysqld: [FAILED]

  3. Consultez le journal: /var/log/mysqld.log

  4. Vous pouvez obtenir cette erreur: [ERREUR] Impossible d'ouvrir la table mysql.plugin. Veuillez exécuter mysql_upgrade pour le créer.

La solution qui fonctionne pour moi exécute ceci:

  1. $ mysql_install_db

Veuillez me faire savoir si cela ne résoudra pas votre problème.

0
RAVicioso

Référence ici 2.10.2.1 Résolution des problèmes de démarrage du serveur MySQL .

1.Trouvez le répertoire de données , il a été configuré dans my.cnf.

[mysqld]
datadir=/var/lib/mysql

2. Vérifiez le fichier err, il enregistre le message d'erreur expliquant pourquoi le démarrage du serveur mysql a échoué. le nom du fichier err est lié à votre nom d'hôte.

cd /var/lib/mysql
ll
tail (hostname).err

3.Si vous trouvez des messages comme:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 33554432 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
170513 14:25:22 [ERROR] Plugin 'InnoDB' init function returned error.
170513 14:25:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170513 14:25:22 [ERROR] Unknown/unsupported storage engine: InnoDB
170513 14:25:22 [ERROR] Aborting

puis

supprimer ib_logfile0 et ib_logfile1

, puis,

/etc/init.d/mysqld start
0
henry ren

Il peut s'agir d'un problème d'autorisation,

Veuillez essayer la commande suivante /etc/init.d/mysqld start en tant qu'utilisateur root.

0
user3713700

Je viens d'avoir cette erreur. Je n'ai pas pu me connecter à distance à mon serveur mysql. J'ai essayé de redémarrer le serveur mysql avec le service mysqld restart (J'ai utilisé root). Il s'est arrêté mais n'a pas recommencé. Il s'avère que ma mémoire était pleine. Effacé quelques Go et cela fonctionne bien.

0
SGjunior

Si vous utilisez yum dans AIM Linux Amazon EC2. Pour des raisons de sécurité, effectuez une sauvegarde complète du répertoire/var/lib/mysql

Sudo yum reinstall -y mysql55-server

Sudo service mysqld start
0
Jonathan Ascencio