Mon problème a commencé avec le fait que je ne pouvais plus me connecter en tant que root sur mon installation mysql. J'essayais d'exécuter mysql sans mot de passe activé ... mais chaque fois que j'exécutais la commande
# mysqld_safe --skip-grant-tables &
Je ne récupérerais jamais l'invite. J'essayais de suivre ces instructions pour récupérer le mot de passe .
L'écran ressemble à ceci:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
et je ne reçois pas d'invite pour commencer à taper les commandes SQL pour réinitialiser le mot de passe.
Lorsque je le tue en appuyant sur CTRL+ C, j'obtiens le message suivant:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Si je réessaye la commande et la laisse assez longtemps, j'obtiens la série de messages suivante:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Mais si j'essaye de me connecter en tant que root en faisant:
# mysql -u root
Je reçois le message d'erreur suivant:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
J'ai vérifié et le /var/run/mysqld/mysqld.sock
fichier n'existe pas. C'est le dossier, mais pas le fichier.
De plus, je ne sais pas si cela aide ou non, mais j'ai couru find / -name mysqld
et il est venu avec:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Je suis nouveau sur Linux et MySQL, donc je ne sais pas si c'est normal ou non. Mais j'inclus ces informations au cas où cela aiderait.
J'ai finalement décidé de désinstaller et réinstaller mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Après avoir réinstallé tous les packages dans le même ordre que ci-dessus, lors de l'installation de phpmyadmin, j'ai eu la même erreur:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
J'ai donc essayé à nouveau de désinstaller / réinstaller. Cette fois, après avoir désinstallé les packages, j'ai également renommé manuellement tous les fichiers et répertoires mysql mysql.bad
en leurs emplacements respectifs.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Ensuite, j'ai essayé de réinstaller mysql-server
et mysql-client
encore. Mais j'ai remarqué que cela ne me demandait pas de mot de passe. N'est-il pas censé demander un mot de passe administrateur?
/var/run/mysqld/mysqld.sock
disparu. Le problème que vous avez lié a ce fichier.Réponses:
Pour trouver tous les fichiers socket sur votre système, exécutez:
Mon système de serveur Mysql avait le socket ouvert à
/var/lib/mysql/mysql.sock
Une fois que vous avez trouvé l'emplacement d'ouverture du socket, ajoutez ou modifiez la ligne dans votre fichier /etc/my.cnf avec le chemin d'accès au fichier socket:
Parfois, le script de démarrage du système qui a lancé l'exécutable de ligne de commande spécifie un indicateur
--socket=path
. Cet indicateur pourrait remplacer l'emplacement my.cnf, ce qui entraînerait la non-localisation d'un socket là où le fichier my.cnf indique qu'il devrait être. Ensuite, lorsque vous essayez d'exécuter le client de ligne de commande mysql, il lira my.cnf pour trouver le socket, mais il ne le trouvera pas car il s'écarte de l'endroit où le serveur en a créé un. Donc, sauf si vous vous souciez de l'emplacement du socket, il suffit de modifier le fichier my.cnf pour qu'il corresponde.Ensuite, arrêtez le processus mysqld. La manière de procéder variera selon le système.
Si vous êtes super utilisateur dans le système Linux, essayez l'une des méthodes suivantes si vous ne connaissez pas la méthode spécifique utilisée par votre configuration Mysql:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
oups aux | grep mysql | grep -v grep
4969
termine aveckill -9 4969
Après cela, vous voudrez peut-être rechercher un fichier pid
/var/run/mysqld/
et le supprimerAssurez-vous que les autorisations sur votre socket sont telles que tout utilisateur mysqld en cours d'exécution peut lire / écrire dessus. Un test simple consiste à l'ouvrir en lecture / écriture complète et à voir si cela fonctionne toujours:
Si cela résout le problème, vous pouvez personnaliser les autorisations et la propriété du socket en fonction de vos paramètres de sécurité.
De plus, le répertoire dans lequel se trouve le socket doit être accessible par l'utilisateur exécutant le processus mysqld.
la source
kill -9
; il y a plusieurs façons qui devraient être essayées avant d'en arriver là.ps -aux | grep mysqld
et voit si d'autres processus mysql sont en cours d'exécutionEssayez cette commande,
la source
sudo service mysqld start
sudo apt-get install mysql-server
si vous ne l'avez pas déjà installé :)Cette erreur se produit en raison de plusieurs installations de mysql. Exécutez la commande:
Tuez le processus en utilisant:
puis exécutez la commande:
Tuez également ce processus en exécutant:
Maintenant que vous êtes prêt, lancez simplement les commandes suivantes:
Avoir à nouveau très bien travaillé mysql
la source
La solution est bien plus simple.
mysql.sock
se trouve votre fichier. Dans mon cas, c'était/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
Cela démarre votre gestionnaire de fichiers avec des privilèges de super utilisateur
mysql.sock
fichiermysqld.sock
puis faites un clic droit sur le fichier et coupez- le/var/run
et créez un dossier appelémysqld
et entrez-lemysqld.sock
fichier sur/var/run/mysqld/mysqld.sock
:)la source
sudo find / -type s
n'en contient pasmysql.sock
?Juste besoin de démarrer le service MySQL après l'installation:
Pour Ubuntu:
Pour CentOS ou RHEL:
la source
sudo systemctl status mysql.service
etsudo systemctl start mysql.service
. Cela fonctionne pour moiIl y a un bug sur Ubuntu avec MySQL 5.6 et 5.7 où
var/run/mysqld/
disparaîtrait chaque fois que le service MySQL s'arrêterait ou serait redémarré. Cela empêche l'exécution de MySQL. Trouvé cette solution de contournement, qui n'est pas parfaite, mais au moins, elle s'exécute après l'arrêt / le redémarrage:la source
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
puis,d /var/run/mysqld 0755 mysql mysql -
après le redémarrage, mysql devrait démarrer normalement. Cela vient de bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , commentaire 3. Si vous avez eu ce problème avec MySQL 5.7, veuillez commenter Launchpad. Plus il y a d'utilisateurs qui abordent le problème, plus il retiendra l'attention./etc/tmpfiles.d/mysql.conf
commentaire de chaque motard a résolu ce problème pour moi. Sur un OS Centos 7 et en utilisantmysql Ver 15.1 Distrib 10.3.11-MariaDB,
.D'accord, copiez et collez ces codes: cela devrait être fait dans le terminal, à l'intérieur d'un serveur, lorsque votre base de données mysql n'est pas correctement installée, et lorsque vous obtenez cette erreur: 'Impossible de se connecter au serveur MySQL local via le socket' / var / run / mysqld / mysqld.sock '(2)'.
Arrêtez MySql
Redémarrez-le ou démarrez-le
Faites un lien comme celui-ci et donnez-le au système
Exécutez une installation sécurisée qui guide tout le processus que vous devez faire pour configurer mysql
la source
Can't connect
erreur quand j'essaye d'exécuter la commande ci-dessus.J'ai rencontré la même erreur et j'ai trouvé que c'était dû à la mise à niveau des packages, donc après le redémarrage de mon système, j'ai résolu l'erreur.
Je pense qu'en raison de la mise à jour des bibliothèques / packages SQL, cette erreur s'est produite, alors essayez ceci si vous effectuez une mise à niveau :)
la source
Il y a beaucoup de raisons à ce problème, mais parfois redémarrez simplement le serveur mysql, cela résoudra le problème.
la source
Utiliser XAMPP sur ubuntu:
Créez un dossier appelé mysqld dans le répertoire / var / run . Vous pouvez accomplir cela en utilisant la commande
sudo mkdir /var/run/mysqld
.Créez un lien symbolique vers le fichier mysql.sock créé par le serveur XAMPP lors de son démarrage. Vous pouvez utiliser la commande
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Bonne chance! J'espère que vous vous en sortirez cette fois.
la source
La réponse de l'étape de chargement de l'utilisateur a fonctionné pour moi. Il est parfois nécessaire de modifier le fichier dans la
/etc/mysql/my.cnf
ligne d'ajout au clientla source
mysql: unknown variable 'Host=127.0.0.1'
Host
doivent être en minusculeshost
et cela fonctionnera. De plus, cette solution a fonctionné pour moi.* Erreur: 'Impossible de se connecter au serveur MySQL local via le socket' /var/run/mysqld/mysqld.sock '(2)'
solutions
enfin, désinstallez et réinstallez mysql. **
puis réinstallez par
Après cette opération, 164 Mo d'espace disque supplémentaire seront utilisés.
...... .......
Enfin, vous obtiendrez ces lignes ....
Configuration de libhtml-template-perl (2.95-1) ...
Configuration de mysql-common-5.6 (5.6.16-1 ~ exp1) ... Traitement des déclencheurs pour libc-bin (2.19-0ubuntu6) Traitement des déclencheurs pour ureadahead (0.100.0-16) ...
Puis
root @ ubuntu1404: ~ # mysql -u root -p (pour chaque mot de passe que vous devez utiliser en premier)
Entrer le mot de passe:
Remarque: Le mot de passe saisi doit être le même que le mot de passe de temps d'installation de mysql (comme .root, system, admin, rahul etc ...)
Tapez ensuite
USE rahul_db (nom de la base de données);
Merci.**
la source
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Merci!E: Package 'mysql-server-5.6' has no installation candidate
, il n'existe pas dans Ubuntu 18.04Assurez-vous que le chemin d'accès de votre fichier socket inaccessible est le même que '/var/run/mysqld/mysqld.sock', sinon changez le chemin comme le vôtre. Arrêtez le mysqld
Si le processus est toujours en cours;
Supprimez le répertoire mysql où socket va créer. Pour moi, il ne permettait pas de retirer, j'ai donc dû retirer de force.
Définissez la propriété dans le répertoire
Démarrez mysql
Essayer de se connecter à mysql
la source
Je pense que votre serveur MySQL n'a pas démarré. Démarrez donc le serveur à l'aide de l'une des commandes suivantes.
ou
la source
Solution temporaire
Peut-être que quelqu'un fait face à ce problème. J'utilise Mysql Workbench sur Ubuntu 14 et j'ai obtenu cette erreur.
Trouvez votre fichier socket en lançant
sudo find / -type s
, dans mon cas c'était/run/mysqld/mysqld.sock
Donc, je viens de créer un lien vers ce fichier dans le
tmp
répertoire.la source
/tmp
dossier, il sera donc supprimé à coup sûr. Vous pouvez modifier l'.sock
emplacement du fichier. Voir la réponse @ user3002884.vous pouvez trouver
mysqld.sock
dans/var/run/mysqld
si vous avez déjà installémysql-server
parsudo apt-get install mysql-server
la source
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
en
/etc/my.cnf
ajouter ces lignes:Et redémarrez le service avec:
service mysql restart
cela a fonctionné pour moi
la source
Cela a déjà été mentionné plusieurs fois, mais cela a fonctionné immédiatement pour moi:
service mysql restart
la source
Dans mon cas, deux processus mysqld étaient en cours d'exécution .. ont tué les processus facultatifs en utilisant pkill -9 mysqld
la source
Si vous avez beaucoup de bases de données et de tables sur votre système, et si vous avez
innodb_file_per_table
défini dans my.cnf, alors votre serveur mysql peut avoir manqué d'objets / fichiers ouverts (ou plutôt les descripteurs de ces objets) Définissez un nouveau nombre max avecet redémarrez mysql. Cette approche peut aider lorsque le socket n'est pas créé du tout, mais ce n'est peut-être pas vraiment le vrai problème, il y a un problème sous-jacent.
la source
Je viens d'avoir ce problème sur Ubuntu 14.10
Tours qui
mysql-server
n'étaient plus installés (d'une manière ou d'une autre, ils avaient été supprimés) mais je ne pouvais pas simplement l'installer car il y avait des paquets cassés et des problèmes / conflits de dépendance.Au final, j'ai dû réinstaller mysql
la source
J'ai désinstallé mysql dans Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
J'ai réinstallé mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Cela semblait fonctionner.
la source
Ma solution;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
J'ai changé de port. Ça a marché pour moi. Vous pouvez écrire un autre port. Exemple 3355
la source
Pourquoi obtenir cette erreur
J'ai reçu de nouvelles mises à jour des bibliothèques mysql, j'ai donc mis à jour mon système d'exploitation Kubuntu après avoir obtenu ces erreurs.
Commandes que j'ai essayées et comment je les ai corrigées.
MySql-server fonctionne correctement mais quand j'ai essayé de connecter son don
J'ai vérifié
/var/run/mysqld/mysqld.sock'.
ce répertoire. Mes fichiers n'existaient pas.J'ai également essayé ces commandes pour me connecter, mais cela n'a pas fonctionné pour moi.
Après avoir perdu environ 2 heures, j'ai trouvé la solution
Après cela, tout s'est arrangé pour moi.
la source
Modification du
host
à127.0.0.1
travaillé pour moi.Modifiez le fichier
/etc/mysql/my.cnf
et ajoutez la ligne mentionnée ci-dessous à la section:client
Une fois que vous en avez terminé. Exécutez la commande suivante.
la source
Je vérifierais également la configuration mysql. Je rencontrais ce problème avec mon propre serveur mais j'étais un peu trop précipité et j'ai mal configuré la taille innodb_buffer_pool_size pour ma machine.
innodb_buffer_pool_size = 4096M
Il fonctionne généralement bien jusqu'en 2048, mais je suppose que je n'ai pas la mémoire nécessaire pour prendre en charge 4 concerts.
J'imagine que cela pourrait également arriver avec d'autres paramètres de configuration mysql.
la source
J'ai eu un problème similaire sur un CentOS VPS. Si MySQL ne démarre pas ou continue de planter juste après son démarrage, essayez ces étapes:
1) Trouvez le fichier my.cnf (le mien était situé dans /etc/my.cnf) et ajoutez la ligne:
innodb_force_recovery = X
remplacer X par un nombre de 1 à 6, en commençant par 1 puis en incrémentant si MySQL ne démarre pas. La définition de 4, 5 ou 6 peut supprimer vos données, alors faites attention et lisez http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html avant.
2) Redémarrez le service MySQL. Seul SELECT s'exécutera et c'est normal à ce stade.
3) Videz toutes vos bases de données / schémas avec mysqldump une par une, ne compressez pas les vidages car vous devrez les décompresser plus tard de toute façon.
4) Déplacez (ou supprimez!) Uniquement les répertoires du bd dans / var / lib / mysql, en préservant les fichiers individuels à la racine.
5) Arrêtez MySQL puis décommentez la ligne ajoutée en 1). Démarrez MySQL.
6) Récupérez tous les bd vidés en 3).
Bonne chance!
la source
Essayez ce qui suit à l'invite du terminal:
Une fois que cela vous permet d'entrer, vous pouvez créer un nouvel utilisateur et accorder les privilèges que vous souhaitez sur la base de données spécifique à laquelle ils ont besoin d'accéder.
Mysql 5.7 a changé certaines choses et utilise par défaut le plugin auth_socket (par opposition à mysql_native_password) pour root pour protéger le compte contre le piratage. Vous pouvez remplacer cela en définissant le champ plugin pour root, mais à moins d'avoir une très bonne raison, vous ne devriez probablement pas contourner la protection. Surtout quand
sudo mysql
c'est plus facile que demysql -u root -p
toute façon.J'ai découvert cette information - de tous les endroits - sur un site d'aide Raspberry Pi . A fonctionné comme un charme après que Lubuntu 18.04 m'ait énervé pendant quelques heures.
la source
Créez d'abord dir / var / run / mysqld
avec commande:
puis ajoutez des droits au répertoire
après cet essai
la source
J'ai eu exactement le même problème. Après avoir lutté pendant une heure, j'ai trouvé un moyen de le corriger sans réinstaller mysql-common, mysql-client, mysql-server.
Tout d'abord, allez dans "/ var / run / mysqld". Vous constaterez que le mysql.sock n'existe pas. Supprimez simplement l'intégralité du répertoire mysqld et recréez-le et fournissez-lui les privilèges nécessaires.
Maintenant, tuez le processus mysql dans son intégralité. Il peut être possible qu'il vous affiche "en attente de nettoyage de page" lors de l'exécution de la commande "/etc/init.d/mysql status" même après l'arrêt du service.
Pour fermer complètement le service, utilisez
Une fois le processus interrompu, essayez de le redémarrer à l'aide de
Et vous verrez que ça marche bien! Et il n'y aura pas non plus de problème à l'arrêter.
la source