ERREUR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (2)

441

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.

sushmit sarmah
la source
Réinstaller probablement c'est plus facile: stackoverflow.com/a/31984482/763744
Zernel
Réinitialisez le mot de passe en arrêtant MySQL et en le démarrant en mode sans échec en sautant les --grant tables
davejal
tapez ceci dans votre terminal "sudo apt-get install mysql-server"
Humphrey
Démarrez ou redémarrez le service mysql et vérifiez. sudo /etc/init.d/mysql start ou sudo /etc/init.d/mysql restart
Jitendra Patel
systemctl start mariadb.service
Thewebus

Réponses:

254

J'ai eu une fois ce problème et l'ai résolu en installant mysql-server, alors assurez-vous que vous avez installé le mysql-server, pas le mysql-clientou quelque chose d'autre.

Cette erreur signifie que le fichier /var/run/mysqld/mysqld.sockn'existe pas, si vous ne l'avez pas installé mysql-server, le fichier n'existerait pas. Donc, dans ce cas, installez-le avec

sudo apt-get install mysql-server

Mais si le mysql-serverest déjà installé et fonctionne, vous devez vérifier les fichiers de configuration.

Les fichiers de configuration sont:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

Dans /etc/my.cnf, la configuration du fichier de socket peut être /tmp/mysql.socket dans /etc/mysql/my.cnfla 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.

étourdi
la source
Vous pouvez avoir le démon mysql en cours d'exécution et le mysql-server-core installé, mais vous devez installer le mysql-server, qui est les binaires ET la configuration de la base de données système!
Cedric
99
sudo apt-get install mysql-serverinstaller mysql sur ubuntu
2014
9
Si je devais expliquer techniquement, je dirais 1) Si vous exécutez "mysql -u <nom_utilisateur> -h <MySQL_Server_address> -p", vous exécutez en fait le client mysql pour accéder au serveur mysql. Si vous n'avez pas de serveur mysql installé sur l'adresse / l'adresse IP que vous avez mentionnée avec '-h', l'erreur ci-dessus apparaîtra. En effet, il n'est pas en mesure de se connecter au serveur MySQL via le socket mysql.sock 2) Si Mysql-server est déjà installé, il devrait fonctionner, sinon, vous observerez la même erreur. Faites-le donc fonctionner sur le serveur que vous avez spécifié.
Mayur Nagekar
1
Cela peut également se produire si vous essayez de modifier le répertoire dans lequel la base de données est stockée, mais imputez le mauvais répertoire dans le fichier de configuration (comme une faute de frappe). Au lieu de vous dire que le répertoire typo n'existe pas, il vous dira que vous n'avez pas la permission d'y accéder.
Michael
4
Dans un premier temps, je recommanderais une tentative de redémarrage du processus serveur (voir les autres distinctions serveur / client). Essayez sudo /etc/init.d/mysql restart. Habituellement, la réinstallation n'est pas nécessaire. Je vous recommande de vérifier d'abord les fichiers journaux. Pas seulement le fichier journal de mysql mais aussi / var / log / syslog car vous avez peut-être eu un plantage du serveur provoquant la panne de mysql comme effet secondaire.
Rein
212

Essaye ça:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

Aussi (pour voir s'il fonctionne):

telnet 127.0.0.1 3306 

C'est probablement juste une mauvaise configuration dans le my.cnffichier, en /etc/somewhere(selon la distribution Linux ).

Yannick
la source
1
Je reçois la même erreur. Et j'ai vérifié et la liaison par défaut dans le principal et mon.cnf est déjà définie sur 127.0.0.1. Cependant, l'utilisation de votre commande ci-dessus m'a permis de me connecter. Il faudra continuer à chasser pour voir pourquoi le simple fait de faire "mysql" donne l'erreur.
cchiera
1
J'obtiens telnet: impossible de se connecter à l'hôte distant: connexion refusée en raison de la commande telnet. Cependant apache fonctionne toujours car je peux ouvrir localhost
Rishi Dua
@cchiera Vous savez, je n'avais pas eu cette erreur auparavant. Mais quand j'ai voulu me connecter à ma base de données via une application iOS en utilisant ssh tunnel, j'ai eu cette erreur de 2013. Pour le résoudre, j'ai dû modifier /etc/my.cnfet 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 taper mysqlsans -hlève une erreur.
Pathros
Remarque: mysql -h localhostne fonctionne pas. Assurez-vous d'utiliser mysql -h 127.0.0.1comme spécifié dans la réponse.
vadasambar
Comment puis-je résoudre ce problème si je parviens à me connecter avec la commande dans cette réponse?
Carlos A. Jimenez Holmquist
128

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):

  1. Arrêtez mysql

    sudo /etc/init.d/mysql stop

    Ou pour d'autres versions de distribution:

    sudo /etc/init.d/mysqld stop
  2. Démarrez MySQL en mode sans échec

    sudo mysqld_safe --skip-grant-tables &
  3. Connectez-vous à MySQL en utilisant root

    mysql -uroot
  4. Sélectionnez la base de données MySQL à utiliser

    use mysql;
  5. Réinitialiser le mot de passe

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
  6. Vider les privilèges

    flush privileges;
  7. Redémarrez le serveur

    quit
  8. Arrêtez et redémarrez le serveur

    Ubuntu et Debian:

    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start

    Sur CentOS, Fedora et RHEL:

    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
  9. Connectez-vous avec un nouveau mot de passe

    mysql -u root -p
  10. 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 .

davejal
la source
La mise à jour du mot de passe des utilisateurs n'a pas fonctionné pour moi, mais une fois connecté au moniteur MySQL et après avoir utilisé la base de données mysql, repair table user use_frmj'ai travaillé pour résoudre ce problème. - stackoverflow.com/questions/4297592/…
Craig van Tonder
20
Dans MySQL 5.7, le champ de mot de passe dans le champ de la table mysql.user a été supprimé, maintenant le nom du champ est 'chaîne_authentification', donc (5) devrait êtreupdate user set authentication_string=password('mynewpassword') where user='root';
Daniel
Connaissez-vous un moyen d'en faire un script bash? Il semble que j'en ai besoin à chaque fois que je redémarre la boîte.
vphilipnyc
Quelque chose me dit que vous voulez une solution de contournement, mais vous devriez en fait essayer de savoir pourquoi vous devez faire ceci à chaque fois et y remédier. Quant au script, posez une nouvelle question et postez ce que vous avez déjà essayé, peut-être que d'autres pourraient aider
davejal
2
Cela a très bien fonctionné pour moi, mais j'ai d'abord dû implémenter cette solution: stackoverflow.com/questions/42153059/…
Andrew Fox
68

J'ai essayé les étapes suivantes:

  1. Connectez-vous en tant que super userou utilisezsudo
  2. Ouvrir /etc/mysql/my.cnfavec gedit
  3. Recherchez bind-addresset modifiez sa valeur en adresse IP de la machine hôte du serveur de base de données. Pour moi, c'était localhostou127.0.0.1
  4. Enregistrez et fermez le fichier.
  5. Revenez au terminal et exécutez sudo service mysql start

Et ça a marché pour moi.

rshahriar
la source
4
De cela, je viens de lancer sudo service mysql restart et cela a fonctionné.
Orane
Dans mon cas, l'erreur a changé l'adresse IP, j'ai donc défini bind-address = localhost
Nicolás Arias
@rshahriar il n'y a rien appelé comme bind-address dans mon /etc/my.cnf est-ce une bonne idée d'ajouter le champ
RCBian
@SilvioDelgado Pas si vous voulez vous connecter via le tunneling ssh. Explication ici
Pathros
le redémarrage du service mysql a également fonctionné pour moi, mais je ne sais toujours pas où trouver le journal des erreurs afin de déterminer la cause et d'essayer de l'empêcher de se reproduire ...
Maleka
41

J'ai résolu ce problème en exécutant la commande suivante:

mysql.server start

Et si vous êtes sur un mac et que vous avez utilisé brew pour installer mysql, utilisez simplement:

brew services start mysql
sbodanis
la source
36

J'avais un problème similaire. mysql ne démarre pas:

sudo service mysql start
start: Job failed to start

Si j'ai désactivé l'apparmor:

sudo aa-complain /etc/apparmor.d/*

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

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,
dkoes
la source
Je ne savais pas que je devais appeler "sudo service mysql start". La dernière fois que j'ai installé MySQL sur Ubuntu, je pense qu'il a démarré automatiquement lors de l'installation. MariaDB sur Manjaro nécessite que le service soit explicitement démarré après l'installation.
dmiller309
32

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.

> service mysql restart

ou

> service mysql stop

> service mysql start

S'il ne reconnaît pas la stopcommande, c'est définitivement l'espace disque. Vous devez libérer de l'espace dans la partition mysqlou agrandir le disque.

Vérifiez l'espace disque avec

> df -h
Martin Schultz
la source
2
La même chose m'est arrivée - disque plein. Nettoyé de l'espace, redémarré et le problème a disparu.
Darren
2
Si c'est votre problème lors de l'exécution: "/etc/init.d/mysqld start" vous dira que votre partition de disque est pleine
Tickon
Pareil pour moi, disque à 100%. Espace nettoyé et début du service ok
Hugo
28

J'ai résolu cela en tuant le mysqlprocessus:

ps -ef | grep mysql
kill [the id]

Et puis j'ai redémarré le serveur avec:

sudo /etc/init.d/mysql restart

Mais ça startmarche aussi:

sudo /etc/init.d/mysql start

Ensuite, je me suis connecté en tant que admin, et j'avais terminé.

Wartari
la source
eh bien, j'interrompais réellement mysql avant qu'il ne plante. Ensuite, je reçois "* S'il vous plaît jeter un oeil au syslog." et "ERREUR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (111)". Enfin, je me rends compte qu'il essaie de se récupérer, alors je le tue et le redémarre.
cwhsu
Il y a de (rares) situations où "mysql start" échouera, vous devez donc utiliser l'argument "restart". Si vous devez tuer un processus démon, il vaut mieux utiliser l'argument "stop" au lieu de la commande kill. Cependant, la commande killall est plus pratique que la commande kill (killall mysqld).
Rein
Tuer le processus MySQL puis redémarrer MySQL a fonctionné pour moi, bien
Vishal Shetty
21

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.cnffichier. Il devrait y avoir une ligne comme

socket = /var/run/mysqld/mysqld.sock

Voyez 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.

Wouter
la source
19

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:

  1. Vérifiez si le fichier /var/run/mysqld/mysqld.sockexiste. Si ce n'est pas le cas, créez-le manuellement en entrant touch /var/run/mysqld/mysqld.sock(c'est ce que je devais faire).

  2. Le processus MySQL peut donc utiliser ce fichier. Changez la propriété dudit fichier en entrant chown mysql /var/run/mysqld/mysqld.sock.

  3. Une fois '2' terminé, redémarrez le service MySQL en entrant service mysql restartou /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 :).

Rob
la source
1
J'ai remarqué que le fichier n'était pas là et j'ai juste redémarré le serveur mysql. Il a automatiquement créé le fichier et démarré très bien. Merci pour l'exemple.
Sojurn
15

Votre serveur mysql n'est peut-être pas en cours d'exécution. Assurez-vous qu'il fonctionne en tapant mysql.server startdans le terminal.

Moses Wasswa
la source
15

Vérifiez le "bind-adress"paramètre dans my.cnf.

Sinon, essayez avec la commande:

mysql -h 127.0.0.1 -P 3306 -u root -p
  • -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 MySQL

Amit Girme
la source
11

Voici ce qui a fonctionné pour moi:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart

Cela crée un lien.

Utilisateur
la source
Cela n'a pas fonctionné pour moi :( Cela crée un lien symbolique entre les deux dossiers askubuntu.com/a/56340/242873
Michael
11

Si vous utilisez Amazon EC2 et que vous rencontrez ce problème sur l'instance, il vous suffit de faire:

sudo yum install mysql-server
sudo service mysqld restart

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

 mysql -u root -p

pour vérifier si cela a fonctionné.

Murtaza Kanchwala
la source
Impossible de redémarrer mysqld.service: l'unité mysqld.service est introuvable. Dans Ubuntu 16.04
Ketav Chotaliya
9

Je pense que chaque fois que vous obtenez l'erreur

ERREUR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket '/var/lib/mysql/mysql.sock'

Je recommanderai d'abord de vérifier si votre mysqldé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:

.../etc/init.d/mysqld start.

Je parie que cela fonctionnera à 110%.

vikash kumar singh
la source
9

Au lieu d'utiliser localhost:

mysql -u myuser -pmypassword -h localhost mydatabase

Utilisez 127.0.0.1

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(notez également, pas d'espace entre -p et mypassword)

Prendre plaisir :)

mpinvidio
la source
Vous ne pouvez pas non plus inclure votre mot de passe depuis la ligne de commande pour des raisons de sécurité en utilisant cette ligne: mysql -u myuser -p -h 127.0.0.1 mydatabase MySQL vous demandera votre mot de passe et ne l'écho pas.
DDay
1
Cela l'a résolu pour moi. Cependant, je me demande toujours pourquoi 127.0.0.1fonctionne tout en localhostne fonctionne pas?!
not2savvy
9

Assurez-vous que vous disposez de sauvegardes de bases de données importantes, puis essayez de désinstaller les éléments liés à MySQL :

apt-get remove --purge mysql\*

Ensuite, réinstallez-le :

apt-get install mysql-server mysql-client

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 :

apt-get install php5-fpm php5-mysql
user3162468
la source
Je pense que c'est l'arme fatale. J'ai tout essayé mais, seule ta proposition m'a aidé. Merci !
Messou
9

Je suis également confronté au même problème, il se produira si votre mysql servern'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

$ sudo service mysql start   

(mettre le mot de passe utilisateur si nécessaire parce que nous utilisons sudo), puis exécuter

$ sudo mysql -u root -p          (put user password if required )

maintenant vous avez votre base de données

Roko
la source
7

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.

Leandro Souza
la source
7

Si XAMPP est installé sur votre machine Linux, essayez de copier votre my.cnffichier de /opt/lampp/etc/my.cnfà /etc/my.cnf.

Ensuite, exécutez à mysql -u rootnouveau ... Vous devriez maintenant avoir le bon socket et être capable d'exécuter le client MySQL.

Toni Widiarto
la source
7

J'ai aussi ce problème, mais je viens de le faire:

sudo service mysql restart 

Ça a marché pour moi.

Kenny Ong
la source
7

J'ai trouvé la solution

Avant d'exécuter la commande:mysql_secure_installation

  • Étape 1: sudo systemctl stop mariadb
  • Étape 2: sudo systemctl start mariadb
  • Étape 3: 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.

sagar mahajan
la source
6

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 comme sudo lsof -Pn -iTCP:3306pour voir qui peut utiliser le port.

Bhaskar
la source
6

Dans mon cas, cela a fonctionné en faisant de la R&D:

Je peux me connecter à MySQL en utilisant

root-debian#mysql -h 127.0.0.1 -u root -p

Mais ça ne marche pas avec mysql -u root -p .

Je n'en ai pas trouvé bind-addressdans my.cnf . J'ai donc commenté le paramètre socket=/var/lib/mysql/mysqld.sockdans my.cnflequel me posait un problème de connexion.

Après avoir redémarré le service, tout s'est bien passé:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)
Swapna Kumar
la source
6

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.

Jazuly
la source
5

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.

elmaazouz
la source
5

Ouvrez le terminal et saisissez:

sudo apt-get purge mysql-client-core-5.6

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get install mysql-client-core-5.5

sudo apt-get install mysql-server  

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.

Akshay
la source
5

Vérifiez si vous disposez des droits appropriés:

sudo chmod 755 /var/lib/mysql/mysql

J'ai eu les mêmes problèmes et cela a fonctionné pour moi. Après cela, j'ai pu démarrer MySQL.

user3599321
la source
5

Dans mon cas, il semble que je n'étais pas vraiment capable de tuer le processus mysql, lorsque je lance

sudo service mysql stop
ps -ef | grep mysql

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é

cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Maintenant, je peux me connecter à la base de données en utilisant

mysql -u root

Puis pour mettre à jour le mot de passe root:

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

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

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

Cela crée un utilisateur "super" sans mot de passe et vous pouvez alors vous connecter avec mysql -u super

Buksy
la source
merci pour la réponse et j'ai pu me connecter à mysql, mais il n'y a pas de table utilisateur dans mes bases de données.
John Joe
Cette solution fonctionne. Mais avant d'exécuter l'instruction sql pour modifier le mot de passe de root, vous devez sélectionner une base de données. Exécutez l'instruction suivante <br> use mysql;<br> et vous pouvez maintenant l'utiliser <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Charle K.
5

Sur le serveur Debian Jessie, ma solution de travail consistait simplement à faire

service mysql restart
service mysql reload

en tant qu'utilisateur root

Thomas Webber
la source