Mon environnement local est:
avec MySQL 5.7 installé
Sudo apt-get install mysql-common mysql-server
Lorsque j'ai essayé de me connecter à MySQL (via CLI):
mysql -u root -p
Je suis tombé sur un problème cyclique en 3 étapes.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Solution: redémarrage du PC.
Ce qui a conduit à une autre erreur:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Problème possible? Mauvais mot de passe pour l'utilisateur "root"!
Solution: réinitialiser le mot de passe root avec ce tutoriel .
Avec un mot de passe et une prise de travail corrects, la dernière erreur survient.
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Ici je me suis arrêté ou en quelque sorte à 1) à nouveau.
J'ai une solution!
Lors de la réinitialisation du mot de passe root à l'étape 2), modifiez également le plug-in auth en mysql_native_password
:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Cela m'a permis de me connecter avec succès!
Sudo /etc/init.d/mysql stop # stop mysql service
Sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password Prompt because your password is now blank
mysql -u root -p
Lorsque vous voyez une erreur socket, une communauté propose deux solutions:
Sudo mkdir -p /var/run/mysqld; Sudo chown mysql /var/run/mysqld
Sudo mysqld_safe --skip-grant-tables &
(merci à @Cerin)
Ou
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(merci à Peter Dvukhrechensky)
mysql -uroot # "-hlocalhost" is default
Peut conduire à "fichier manquant" ou erreur slt.
mysql -uroot -h127.0.0.1
Fonctionne mieux.
J'ai trouvé de nombreuses façons de créer un fichier mysqld.sock
, de modifier les droits d'accès ou de créer un lien symbolique. Ce n'était pas le problème après tout.
my.cnf
La question n'était pas non plus là. Si vous n'êtes pas sûr, cela pourrait vous aider .
Vous pouvez essayer comme suit, cela fonctionne pour moi.
Démarrer le serveur:
Sudo service mysql start
Maintenant, allez dans le dossier chaussette:
cd /var/run
Sauvegardez la chaussette:
Sudo cp -rp ./mysqld ./mysqld.bak
Arrêtez le serveur:
Sudo service mysql stop
Restaurez la chaussette:
Sudo mv ./mysqld.bak ./mysqld
Démarrez mysqld_safe:
Sudo mysqld_safe --skip-grant-tables --skip-networking &
Init mysql Shell:
mysql -u root
Changer le mot de passe:
Par conséquent, choisissez d'abord la base de données
mysql> use mysql;
Maintenant, entrez ci-dessous deux requêtes:
mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';
Maintenant, tout ira bien.
mysql> flush privileges;
mysql> quit;
Pour vérifier:
mysql -u root -p
terminé!
N.B, After login please change the password again from phpmyadmin
Maintenant, vérifiez hostname/phpmyadmin
Username: root
Password: 123456
Pour plus de détails, veuillez vérifier Comment réinitialiser le mot de passe oublié phpmyadmin dans Ubuntu
Vous pouvez essayer ces quelques étapes:
Arrêtez 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 la connexion au terminal mysql, vous aurez besoin de plus de commandes d'exécution:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
Sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown
Après avoir redémarré votre serveur mysql Si vous rencontrez toujours une erreur, vous devez visiter: réinitialiser le mot de passe root de MySQL 5.7, Ubuntu 16.04
La commande mysql
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 sur le serveur.
Vous pouvez le faire en modifiant la configuration [mysqld]
comme ceci:
[mysqld]
plugin-load-add = auth_socket.so
Selon la distribution, le fichier de configuration est généralement situé à /etc/mysql/
ou /usr/local/etc/mysql/
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 si c'est bloqué)
se connecter à mysql sans mot de passe
étape 4: Sudo mysql --user = root mysql
étape 5: SELECT utilisateur, authentication_string, plugin, hôte FROM mysql.user;
étape 6: ALTER USER 'root' @ '' localhost 'IDENTIFIÉ AVEC mysql_native_password BY' root '
connectez-vous maintenant avec
Essayez-le: Sudo mysql_secure_installation
Le travail est à Ubuntu 18.04