J'ai installé LAMP sur Ubuntu 12.04 LTS (Precise Pangolin), puis j'ai défini le mot de passe root sur phpMyAdmin . J'ai oublié le mot de passe et je ne parviens plus à me connecter. Lorsque j'essaie de changer de mot de passe via le terminal, j'obtiens:
ERREUR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (2)
Comment puis-je réparer cela? Je n'arrive pas à ouvrir LAMP, à le désinstaller ou à le réinstaller.
mysql
phpmyadmin
lamp
forgot-password
mysql-error-2002
sushmit sarmah
la source
la source
Réponses:
J'ai eu une fois ce problème et l'ai résolu en installant
mysql-server
, alors assurez-vous que vous avez installé lemysql-server
, pas lemysql-client
ou quelque chose d'autre.Cette erreur signifie que le fichier
/var/run/mysqld/mysqld.sock
n'existe pas, si vous ne l'avez pas installémysql-server
, le fichier n'existerait pas. Donc, dans ce cas, installez-le avecMais si le
mysql-server
est déjà installé et fonctionne, vous devez vérifier les fichiers de configuration.Les fichiers de configuration sont:
Dans
/etc/my.cnf
, la configuration du fichier de socket peut être/tmp/mysql.sock
et dans/etc/mysql/my.cnf
la configuration du fichier de socket peut être/var/run/mysqld/mysqld.sock
. Donc, supprimez ou renommez/etc/mysql/my.cnf
, laissez mysql utiliser/etc/my.cnf
, le problème peut être résolu.la source
sudo apt-get install mysql-server
installer mysql sur ubuntuEssaye ça:
Aussi (pour voir s'il fonctionne):
C'est probablement juste une mauvaise configuration dans le
my.cnf
fichier, en/etc/somewhere
(selon la distribution Linux ).la source
/etc/my.cnf
et commenter la#bind-address = 127.0.0.1
référence 1 référence 2 . Ensuite, je pourrais me connecter. Après cela, j'ai réalisé que j'obtenais maintenant cette erreur de 2002 qui m'a amené à cette réponse et maintenant cela fonctionne à nouveau. Je suis définitivement d'accord avec vous en obtenant une explication sur pourquoi simplement tapermysql
sans-h
lève une erreur.mysql -h localhost
ne fonctionne pas. Assurez-vous d'utilisermysql -h 127.0.0.1
comme spécifié dans la réponse.Je vois toutes ces réponses, mais aucune n'offre la possibilité de réinitialiser le mot de passe et aucune réponse acceptée . La vraie question étant qu'il a oublié son mot de passe, il doit donc réinitialiser, ne pas voir s'il fonctionne ou non (installé ou non) comme la plupart de ces réponses impliquent.
Pour réinitialiser le mot de passe
Suivez ces étapes (cela peut être utile si vous oubliez vraiment votre mot de passe et vous pouvez l'essayer à tout moment, même si vous n'êtes pas dans la situation en ce moment):
Arrêtez
mysql
Ou pour d'autres versions de distribution:
Démarrez MySQL en mode sans échec
Connectez-vous à MySQL en utilisant root
Sélectionnez la base de données MySQL à utiliser
Réinitialiser le mot de passe
Vider les privilèges
Redémarrez le serveur
Arrêtez et redémarrez le serveur
Ubuntu et Debian:
Sur CentOS, Fedora et RHEL:
Connectez-vous avec un nouveau mot de passe
Tapez le nouveau mot de passe et profitez à nouveau de votre serveur comme si de rien n'était.
Cela provient de Réinitialiser un mot de passe racine MySQL .
la source
repair table user use_frm
j'ai travaillé pour résoudre ce problème. - stackoverflow.com/questions/4297592/…update user set authentication_string=password('mynewpassword') where user='root';
J'ai essayé les étapes suivantes:
super user
ou utilisezsudo
/etc/mysql/my.cnf
avec geditbind-address
et modifiez sa valeur en adresse IP de la machine hôte du serveur de base de données. Pour moi, c'étaitlocalhost
ou127.0.0.1
sudo service mysql start
Et ça a marché pour moi.
la source
J'ai résolu ce problème en exécutant la commande suivante:
Et si vous êtes sur un mac et que vous avez utilisé brew pour installer mysql, utilisez simplement:
la source
J'avais un problème similaire. mysql ne démarre pas:
Si j'ai désactivé l'apparmor:
le problème a disparu. Le problème était que mysqld essayait d'accéder à /run/mysqld/mysqld.sock mais le profil de l'apparmeur n'autorisait que /var/run/mysqld/mysqld.sock (/ var / run a un lien symbolique vers / run, donc ce sont en fait des liens le même). Vous ne savez pas pourquoi mysqld n'utilise pas le chemin var car c'est ce qui est défini dans tous les fichiers de configuration, mais vous pouvez résoudre le problème en ajoutant ce qui suit à /etc/apparmor.d/usr.sbin.mysqld
la source
Dans mon cas, c'était que le disque était plein et que mysqld ne pouvait plus démarrer.
Essayez de redémarrer le service mysql.
ou
S'il ne reconnaît pas la
stop
commande, c'est définitivement l'espace disque. Vous devez libérer de l'espace dans la partitionmysql
ou agrandir le disque.Vérifiez l'espace disque avec
la source
J'ai résolu cela en tuant le
mysql
processus:Et puis j'ai redémarré le serveur avec:
Mais ça
start
marche aussi:Ensuite, je me suis connecté en tant que
admin
, et j'avais terminé.la source
D'une manière ou d'une autre, le processus du serveur MySQL n'a pas créé le socket, ou le client recherche le socket au mauvais endroit.
Ma première suggestion serait de vérifier si le serveur MySQL fonctionne. La deuxième suggestion pourrait être, le serveur MySQL fonctionne-t-il sur un autre hôte? Si oui, ajoutez le
-h <hostname>
indicateur à votre client MySQL dans le terminal.Si MySQL est effectivement en cours d'exécution et s'exécute localement, vérifiez votre
my.cnf
fichier. Il devrait y avoir une ligne commeVoyez si cela correspond à l'emplacement du socket que vous avez mentionné dans votre message.
Par expérience, je dirais que le scénario le plus probable est que votre serveur MySQL ne fonctionne pas du tout ou ne fonctionne pas sur le même hôte que celui où vous exécutez votre client MySQL à partir du terminal.
la source
Je viens de rencontrer le même problème après avoir dû redémarrer mon serveur de production. J'utilise Debian 8.1 (Jessie) sur une droplet DigitalOcean.
Voici ce que j'ai fait pour résoudre mon problème:
Vérifiez si le fichier
/var/run/mysqld/mysqld.sock
existe. Si ce n'est pas le cas, créez-le manuellement en entranttouch /var/run/mysqld/mysqld.sock
(c'est ce que je devais faire).Le processus MySQL peut donc utiliser ce fichier. Changez la propriété dudit fichier en entrant
chown mysql /var/run/mysqld/mysqld.sock
.Une fois '2' terminé, redémarrez le service MySQL en entrant
service mysql restart
ou/etc/init.d/mysql restart
.Après avoir suivi les étapes ci-dessus, mon problème a été résolu. J'ai rarement ce problème, et il y a probablement un meilleur moyen, donc fournissez certainement des commentaires constructifs si besoin est :).
la source
Votre serveur mysql n'est peut-être pas en cours d'exécution. Assurez-vous qu'il fonctionne en tapant
mysql.server start
dans le terminal.la source
Vérifiez le
"bind-adress"
paramètre dans my.cnf.Sinon, essayez avec la commande:
-h pour l'hôte
127.0.0.1
, c'est-à-dire localhost-P (notez -P en majuscule) pour le port
3306
, c'est-à-dire le port par défaut pour MySQLla source
Voici ce qui a fonctionné pour moi:
Cela crée un lien.
la source
Si vous utilisez Amazon EC2 et que vous rencontrez ce problème sur l'instance, il vous suffit de faire:
Amazon EC2 n'a pas de serveur installé (seul le client est installé), dans ce cas, vous devez l'installer sur votre instance, puis essayer
pour vérifier si cela a fonctionné.
la source
Je pense que chaque fois que vous obtenez l'erreur
Je recommanderai d'abord de vérifier si votre
mysql
démon fonctionne ... La plupart du temps, il ne fonctionnera pas par défaut. Vous pouvez le vérifier par/etc/init.d/mysqld status
.S'il ne fonctionne pas, démarrez-le d'abord:
Je parie que cela fonctionnera à 110%.
la source
Au lieu d'utiliser localhost:
Utilisez 127.0.0.1
(notez également, pas d'espace entre -p et mypassword)
Prendre plaisir :)
la source
127.0.0.1
fonctionne tout enlocalhost
ne fonctionne pas?!Assurez-vous que vous disposez de sauvegardes de bases de données importantes, puis essayez de désinstaller les éléments liés à MySQL :
Ensuite, réinstallez-le :
Cela a fonctionné pour moi et les données ont été conservées.
Si PHP MySQL affiche des erreurs, vous devrez peut-être réinstaller PHP MySQL :
la source
Je suis également confronté au même problème, il se produira si votre
mysql server
n'est pas en cours d'exécution par défaut, il s'arrêtera à nouveau après quelques secondes afin que vous exécutiez à nouveau la$ sudo service mysql start
commande ( ), vous pouvez changer si vous le savez.pour cette commande d'utilisation
(mettre le mot de passe utilisateur si nécessaire parce que nous utilisons
sudo
), puis exécutermaintenant vous avez votre base de données
la source
Si votre installation était récente, vous devriez confirmer si votre installation est le SERVEUR d'installation ... comme mysql-server-5.5 .. Peut-être que vous avez installé seulement "mysql" .. ce n'est que client au lieu du serveur.
la source
Si XAMPP est installé sur votre machine Linux, essayez de copier votre
my.cnf
fichier de/opt/lampp/etc/my.cnf
à/etc/my.cnf
.Ensuite, exécutez à
mysql -u root
nouveau ... Vous devriez maintenant avoir le bon socket et être capable d'exécuter le client MySQL.la source
J'ai aussi ce problème, mais je viens de le faire:
Ça a marché pour moi.
la source
J'ai trouvé la solution
Avant d'exécuter la commande:
mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Ensuite, il vous demandera le mot de passe root et vous pouvez simplement appuyer sur Entrée et définir votre nouveau mot de passe root.
la source
Dans mon cas, le port par défaut 3306 était utilisé par un autre processus et ne démarrait donc pas. Après avoir arrêté l'autre service et l'avoir fait
sudo service mysql start
, cela a bien fonctionné. BTW, vous pouvez utiliser quelque chose commesudo lsof -Pn -iTCP:3306
pour voir qui peut utiliser le port.la source
Dans mon cas, cela a fonctionné en faisant de la R&D:
Je peux me connecter à MySQL en utilisant
Mais ça ne marche pas avec
mysql -u root -p
.Je n'en ai pas trouvé
bind-address
dans my.cnf . J'ai donc commenté le paramètresocket=/var/lib/mysql/mysqld.sock
dansmy.cnf
lequel me posait un problème de connexion.Après avoir redémarré le service, tout s'est bien passé:
la source
j'ai résolu ce problème avec redémarrer mysql
/etc/init.d/mysql stop
et
/etc/init.d/mysql start
c'est ça.
la source
Par expérience, je dis que vous devez d'abord vérifier si le serveur fonctionne, puis essayer de configurer MySQL. La dernière solution consiste à réinstaller MySQL.
la source
Ouvrez le terminal et saisissez:
Les packages client de base de données MySQL et serveur MySQL seront tous deux de la même version 5.5. MySQL Client 5.5 et MySQL Server 5.5 sont les "meilleures" versions actuelles de ces packages dans Ubuntu 14.04, telles que déterminées par les responsables du package.
Si vous préférez installer MySQL Client 5.6 et MySQL Server 5.6, vous pouvez également trouver les packages mysql-client-core-5.6 et mysql-server-5.6 dans le Ubuntu Software Center. L'important est que les numéros de version du client et du serveur correspondent dans les deux cas.
Cela a fonctionné pour moi.
la source
Vérifiez si vous disposez des droits appropriés:
J'ai eu les mêmes problèmes et cela a fonctionné pour moi. Après cela, j'ai pu démarrer MySQL.
la source
Dans mon cas, il semble que je n'étais pas vraiment capable de tuer le processus mysql, lorsque je lance
Le processus mysql était toujours là, il semble qu'il bloquait le fichier socket et le nouveau processus mysql n'a pas pu le créer lui-même.
donc cela a aidé
Maintenant, je peux me connecter à la base de données en utilisant
Puis pour mettre à jour le mot de passe root:
PS : j'ai eu du mal à mettre à jour le mot de passe root, cela semble être un problème avec le plugin "auth_socket", j'ai donc dû créer un nouvel utilisateur avec tous les privilèges
Cela crée un utilisateur "super" sans mot de passe et vous pouvez alors vous connecter avec
mysql -u super
la source
use mysql;
<br> et vous pouvez maintenant l'utiliser <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Sur le serveur Debian Jessie, ma solution de travail consistait simplement à faire
en tant qu'utilisateur root
la source