web-dev-qa-db-fra.com

Se connecter au serveur mysql sans sudo

La commande: 

mysql -u root -p

donne l'erreur:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Mais en exécutant les privilèges Sudo, ça marche:

Sudo mysql -u root -p

Est-il possible de supprimer l'exigence Sudo car cela m'empêche d'ouvrir la base de données dans intellij? J'ai essayé ce qui suit comme dans la réponse à cette question Se connecter au serveur MySQL local sans Sudo :

Sudo chmod -R 755 /var/lib/mysql/

qui n'a pas aidé. La question ci-dessus a une erreur différente levée

20

Seul l'utilisateur root a besoin de Sudo pour se connecter à mysql. J'ai résolu ce problème en créant un nouvel utilisateur et en accordant l'accès aux bases de données requises:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

maintenant newuser peut se connecter sans exigence de Sudo:

mysql -u newuser -p
37

Vous devez changer d'algorithme. Suivre le travail pour moi,

mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
12
Hemant Thorat

commencez par vous connecter à votre mysql avec Sudo.

utilisez ensuite ce code pour remplacer "unix_socket" par "plugin" en coloumn "mysql_native_password" pour l'utilisateur root.

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';

FLUSH PRIVILEGES;

enfin redémarrez le service mysql. c'est tout.

si vous voulez plus d'informations, vérifiez this link

12
Mahmood Shahbazian

Vous pouvez utiliser la requête ci-dessous:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

Cette requête est suffisante.

2
SREEKANTH KC

Dans le commentaire de la question à laquelle vous avez fait référence, il est écrit:

Ok, essayez simplement d’analyser tous les répertoires situés dans le chemin du fichier fichier socket, ils doivent aussi avoir o + rx et le fichier chaussette (ce n’est pas une bonne idée de le rendre modifiable par d’autres) 

Vous pouvez également essayer de supprimer mysql.sock puis de redémarrer mysqld, le fichier Le fichier doit être créé par le démon avec les privilèges appropriés.

Cela a semblé fonctionner pour cette question (celle que vous avez dit avoir regardée) afin que cela fonctionne aussi pour vous.

0
user6335777