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
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
.
Essayez de redémarrer Apache Sudo service httpd restart
. A travaillé pour moi.
lance ça :
chown -R mysql:mysql /var/lib/mysql
et essayez à nouveau!
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql_upgrade
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
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
Encore une autre astuce qui a fonctionné pour moi. Exécutez la commande:
$ mysql_install_db
/etc/init.d/mysql stop
chown -R mysql:mysql /var/lib/mysql
mysql_install_db
/etc/init.d/mysql start
Tout cela a sauvé mon serveur MySQL!
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é.
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
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
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
RE: Le démon MySQL n'a pas pu démarrer - centos 6/RHEL 6
/etc/init.d/mysqld start Le démon MySQL n'a pas pu démarrer. Démarrage de mysqld: [FAILED]
Consultez le journal: /var/log/mysqld.log
La solution qui fonctionne pour moi exécute ceci:
Veuillez me faire savoir si cela ne résoudra pas votre problème.
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
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.
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.
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