mysql est mort, mais subsys verrouillé
j'utilise PHP-mysql sur Linux (RHEL 5.0) Pour La Première Fois
Quand j'ai essayé de me connecter à MySQL à partir de mon Script PHP en utilisant mysqli_connect.
Il S'Affiche Le Message D'Erreur Suivant:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'(2)
après googling for hour j'ai trouvé la solution à ceci comme indiqué ici.
quand j'ai suivi cette approche et que j'ai donné l'ordre:
service mysqld status
en tant que root utilisateur
J'ai : mysql is dead but subsys locked
Quelqu'un sait comment résoudre ceci et la cause de cette erreur ?
- Redémarrage
- début
- et arrêt de MySQL
mais PHP fonctionne bien. J'ai testé le
phpinfo();
pour Démo.J'ai installé MySQL dans
/usr/local/mysql/bin
. Quelqu'un peut-il m'Aider ? Toute aide est la apprécier.
Merci à l'avance.
8 réponses
j'ai eu ce problème avec mon serveur OTRS après avoir essayé de mettre à jour un gros paquet.
La solution:
copier pour safty:
cp /var/lock/subsys/mysqld /root/mysqld
supprimer
rm /var/lock/subsys/mysqld
que fermer tous les services qui dépendent de mysql:
service httpd stop
service otrs stop
après:
service mysqld restart
service httpd restart
service otrs restart
le système est CentOS 6.x
service mysqld restart
simplement redémarrer le mysqld a fonctionné pour moi sur Centos.
- tail/var/log / mysqld.journal afin de vérifier le journal d'erreur
puis effectuez les actions suivantes:
rm /var/lock/subsys/mysqld chown -R mysql.mysql /var/run/mysqld
tout d'abord,assurez-vous que /etc/init.d / mysqld s'exécute à partir de /usr / local/mysql / bin ensuite, tuez mysqld, supprimez le fichier de verrouillage et redémarrez-le.
cela (et toutes sortes d'autres erreurs bizarres) peut aussi arriver si vous avez un disque complet. Dans mon cas, ma partition /var avais rempli. Libérer de l'espace a permis à mysqld de redémarrer à nouveau.
Redémarrer le serveur a fonctionné pour moi. N'oubliez pas de démarrer tous les services Une fois que vous redémarrez au cas où vous n'auriez pas ajouté 'chkconfig' pour eux, disons httpd, named et mysql.
j'ai utiliser la commande kill, étape par étape:
- utiliser le statut mysqld du service de commande pour trouver le PID mysqld
- tuer -9 PID
- utiliser à nouveau le statut mysqld du service de commande pour trouver le PID mysqld
- tuer -15 PID
- vérifier à nouveau avec le service de commande statut mysqld, vérifier jusqu'à ce que le PID mort ou subsys verrouillé
- utiliser le service de commande mysqld start
d'Abord trouver le numéro de PID de mysqld:
1. Utilisez haut | grep mysqld
2. kill -9 PID
Méthode sûre, fonctionne très bien avec Cent OS