Mon environnement local est:
- frais Ubuntu 16.04
- avec PHP 7
avec MySQL 5.7 installé
sudo apt-get install mysql-common mysql-server
Quand j'ai essayé de me connecter à MySQL (via CLI):
mysql -u root -p
Je suis tombé sur un problème cyclique en 3 étapes.
1) Le premier était un problème de socket
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Solution: redémarrer le PC.
Ce qui a conduit à une autre erreur:
2) Avec accès refusé
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Problème possible? Mauvais mot de passe pour l'utilisateur "root"!
Solution: réinitialisez le mot de passe root avec ce tutoriel .
Avec un mot de passe correct et une prise de courant, la dernière erreur survient.
3) Plug-in d'authentification incorrect
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Ici, je me suis arrêté ou je suis arrivé à 1) à nouveau.
mysql
linux
ubuntu
auth-socket
Tomáš Votruba
la source
la source
Réponses:
J'ai une solution!
Lors de la réinitialisation du mot de passe root à l'étape 2), changez également le plug-in d'authentification en
mysql_native_password
:Cela m'a permis de me connecter avec succès!
Solution de code complet
1. exécutez les commandes bash
1. d'abord, exécutez ces commandes bash
2. puis exécutez les commandes mysql => copiez-collez ceci manuellement dans cli
3. exécutez plus de commandes bash
4. Problème de socket (d'après vos commentaires)
Lorsque vous voyez une erreur de socket , une communauté est venue avec 2 solutions possibles:
(merci à @Cerin)
Ou
(merci à @Peter Dvukhrechensky)
Chemins aveugles et erreurs de bord possibles
Utilisez 127.0.0.1 au lieu de localhost
Peut conduire à un "fichier manquant" ou à une erreur slt.
Fonctionne mieux.
Ignorer le problème de socket
J'ai trouvé de nombreuses façons de créer un
mysqld.sock
fichier, de modifier les droits d'accès ou de créer un lien symbolique. Ce n'était pas le problème après tout.Passer le
my.cnf
fichierLe problème n'était pas non plus là. Si vous n'êtes pas sûr, cela pourrait vous aider .
la source
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld; sudo mysqld_safe --skip-grant-tables &
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
ça peut faire gagner du temps à quelqu'unVous pouvez essayer comme suit cela fonctionne pour moi.
Démarrer le serveur:
Maintenant, allez dans le dossier chaussettes:
Sauvegardez la chaussette:
Arrêter le serveur:
Restaurer la chaussette:
Démarrez mysqld_safe:
Démarrer le shell mysql:
Changer le mot de passe:
Par conséquent, choisissez d'abord la base de données
Entrez maintenant ci-dessous deux requêtes:
Maintenant, tout ira bien.
Pour vérifier:
terminé!
N.B, After login please change the password again from phpmyadmin
Vérifiez maintenant
hostname/phpmyadmin
Username: root
Password: 123456
Pour plus de détails, veuillez consulter Comment réinitialiser le mot de passe oublié phpmyadmin dans Ubuntu
la source
La
mysql
commande utilise par défaut des sockets UNIX pour se connecter à MySQL.Si vous utilisez MariaDB, vous devez charger le plug-in d'authentification de socket Unix côté serveur.
Vous pouvez le faire en modifiant la
[mysqld]
configuration comme ceci:Selon la distribution, le fichier de configuration est généralement situé à
/etc/mysql/
ou/usr/local/etc/mysql/
la source
Vous pouvez essayer ces quelques étapes:
Arrêter le service Mysql 1er
sudo /etc/init.d/mysql stop
Connectez-vous en tant que root sans mot de passe
sudo mysqld_safe --skip-grant-tables &
Après vous être connecté au terminal mysql, vous devriez avoir plus besoin d'exécuter des commandes:
Après avoir redémarré votre serveur mysql Si vous rencontrez toujours une erreur, vous devez visiter: Réinitialiser le mot de passe root MySQL 5.7 Ubuntu 16.04
la source
Pour Ubuntu 18.04 et mysql 5.7
étape 1:
sudo mkdir /var/run/mysqld;
étape 2:
sudo chown mysql /var/run/mysqld
étape 3:
sudo mysqld_safe --skip-grant-tables
& quit (utilisez quit s'il est bloqué)connectez-vous à mysql sans mot de passe
étape 4:
sudo mysql --user=root mysql
étape 5:
SELECT user,authentication_string,plugin,host FROM mysql.user;
étape 6:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
maintenant connectez-vous avec
mysql -u root -p <root>
la source
$ mysql -u root -p
mais l'accès refusé encore.Access denied for user 'root'@'localhost' (using password: YES)
J'ai essayé de saisir le mot de passe `` OUI ''Essayez-le: sudo mysql_secure_installation
Travail dans Ubuntu 18.04
la source
Au cas où quelqu'un atterrirait ici après avoir commis la même erreur que moi:
plugin="mysql_native_password"
temporairement à. J'ai effectué mes tâches.plugin="auth_socket"
qui a entraînémysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"
mysql_safe
pour contourner l'authentification afin de passer au plugin appropriéplugin="unix_socket"
J'espère que cela permet à quelqu'un de gagner du temps s'il reçoit le message d'erreur de l'affiche d'origine, mais la vraie cause était de flipper le nom du plugin, ne manquant pas réellement de l'existence du plugin "auth_socket" lui-même, qui selon la documentation MariaDB :
la source
Vous pouvez essayer avec les commandes ci-dessous:
la source