Ubuntu 11.04 - can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)
J'ai googlé pour 2 jours maintenant, et a été d'abord obtenir un
'/var/run/mysqld/mysqld.sock' (2)
J'ai corrigé cela en utilisant:
sudo touch /var/run/mysqld/mysqld.sock
sudo chown -R mysql /var/run/mysqld/
maintenant, je reçois l'erreur:
'/var/run/mysqld/mysqld.sock' (13)
Donc tout ce qui a les autorisations correctes et que le fichier existe. Toutes les pensées?
[Modifier]
Ai eu de travail, bien que je ne suis pas certain de savoir comment. Je n'ai aa-logprof
comme root
, rien n'a changé, s'est mis en colère et puis re-set, il a commencé à travailler.
OriginalL'auteur Jamie Hutber | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas (absolument pas) remplacer le système de fichiers de la pipe
/var/run/mysqld/mysql.sock
avec un fichier régulier. Vous avez besoin d'utilisermkfifo(1)
pour créer lepipe(7)
que les clients utilisent pour communiquer avec le serveur mysql.La
(13)
probablement aussi signifie que vous avez un permission denied retour en cas d'erreur,EACCES
(qui a généralement la valeur décimale13
-- oui, j'ai vu beaucoup).Si les autorisations de système de fichiers sont correctement configurés, vous pourriez avoir accès rejeté par un contrôle d'accès obligatoire outil tel que AppArmor, SELinux, TOMOYO, ou SMACK.
AppArmor est livré pré-installé sur les systèmes Ubuntu par défaut, et peut-être de rejet de l'accès à la conduite. Vérifier
/var/log/syslog
,/var/log/audit/audit.log
oudmesg(1)
de sortie pour les messages à ressembler à quelque chose comme ceci:(Mais avec
name=/var/run/mysqld/mysql.sock
à la place.)Si vous avez des messages d'erreur comme cela, exécutez
aa-logprof
commeroot
et répondre aux questions. Plus d'informations sur la configuration de AppArmor peut être trouvé dans laapparmor.d(5)
page de manuel, ou certains les différentes pages du wiki.111104 11:54:40 [Remarque] le Plugin "FÉDÉRÉS" est désactivée. 111104 11:54:40 InnoDB: l'Initialisation de pool de mémoire tampon, taille = 8,0 M 111104 11:54:40 InnoDB: Terminé l'initialisation de pool de mémoire tampon 111104 11:54:43 InnoDB: Commencé; numéro de séquence 0 44233 111104 11:54:44 [Remarque] Event Scheduler: Chargé 0 événements 111104 11:54:44 [Remarque] le fichier /usr/sbin/mysqld: prêt pour les connexions. Version: '5.1.54-1ubuntu4 prise: '/var/run/mysqld/mysqld.chaussette de port: 3306 (Ubuntu
Hey, qui ressemble à une amélioration;
111
estConnection refused
. Avez-vous redémarrer le serveur après avoir re-création de la socket? Le serveur est configuré pour utiliser ce chemin?mysql.chaussette n'est pas une pipe/fifo, c'est un socket unix. vous impossible de créer que , le serveur mysql devez créer quand il commence. (Il ne pourrait pas s'il y a de mal autorisations sur le répertoire ou le serveur crée la socket dans un autre répertoire que celui où les clients se tournent)
J'ai rencontré un problème similaire après l'exécution d'une commande rsync pour restaurer une sauvegarde partielle de certains dossiers de fichiers sous la racine du système de fichiers (c'est à dire:
rsync -avc ${SOME_RESTORE_DIR}/ /
mais pas y compris/var/lib/mysql
). Dans mon cas, les autorisations de/
ont été mis à 700 après cette opération, ce qui a empêchémysqld
de départ. Pour le fixer, j'ai dûchmod 755 /
et redémarrezmysqld
. C'est probablement ce qui aurait causé de nombreux problèmes sur le serveur si pas trouvé 😉OriginalL'auteur sarnold
Dans mon cas, l'exécution de
mysqld_safe
créé un nouveaumysqld.sock
fichier.Vous aurez probablement pas obtenir le prompt retour, mais si vous redémarrez votre session, un mysqld.chaussette fichier sera quelque part. Trouver avec
OriginalL'auteur aviggiano
Avez-vous vérifier que le serveur mysql
mysqld
est en cours d'exécution? En outre, vérifiez le journal des messages système pour voir si c'est se plaindre de quoi que ce soit.OriginalL'auteur wallyk
Avez-vous essayé de supprimer .verrouiller le fichier et redémarrer mysqld ?
rm /var/lock/subsys/mysql
OriginalL'auteur Edouard B