ZorinOs : MySQL password

Fermé
Trylo - 4 juin 2023 à 14:57
mamiemando Messages postés 33272 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 6 juin 2023 à 17:05

Bonjour,

Je viens d'installer MySQL sur ZorinOs, tout s'est bien passé, au moment où j'essaie de me connecter pour la première fois , il me dit que le mot de passe n'est pas reconnu.

J'ai essayé plusieurs mots de passes mais rien y fait j'ai même essayé sans.

Y a t'il une commande particulière pour modifier ou ajouter un mot de passe ?

Merci.

1 réponse

mamiemando Messages postés 33272 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 782
Modifié le 6 juin 2023 à 17:07

Bonjour,

Pour commencer, peux-tu vérifier si le serveur mysql est démarré et sur quel port il écoute (3306 par défaut).

sudo service mysql status
netstat -ntlp | egrep "mysql|maria"

Si tout est ok, la seconde commande devrait retourner quelque chose qui ressemble à ceci :

tcp    0    0 127.0.0.1:3306       0.0.0.0:*          LISTEN   683/mariadbd

Dans cet exemple, on voit que le serveur MySQL est un serveur MariaDB (la version libre de MySQL, utilisée sous Debian) qui écoute le trafic local (car la bind address est ici 127.0.0.1) sur le port 3306 (qui est bien le port par défaut de MySQL).

Dès lors, on peut espérer se connecter au serveur MySQL depuis cette machine (et pas une autre, puisqu'il n'écoute que le trafic local). Par défaut, tu as dû créer un compte root@localhost au moment d'installer ton serveur MySQL. Note qu'en MySQL, un utilisateur est défini par son login (ici root) ET sa provenance (ici localhost). À ce couple est associé un mot de passe. Pour se connecter on lance :

mysql -u root -p

En cas de succès, on obtient ainsi un interpréteur de commande MySQL :

(mando@atlantic) (~) $ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 39366
Server version: 10.11.2-MariaDB-1 Debian n/a

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

En pratique, les logins / mots de passe sont stockées dans la base "mysql", table "user". En fonction de sa provenance, de son login et de son mot de passe, MySQL trouve ou non un utilisateur valide dans cette table et autorise ou non sa connexion.

SELECT user,host,password FROM mysql.user;

Exemple : Ici on voit que les utilisateurs mysql, root, et mariadb.sys peuvent se connecter localement au serveur MySQL sous réserve de présenter le bon mot de passe.

MariaDB [(none)]> select user,host from mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
3 rows in set (0,002 sec)

Remarques :

  • Il est important de souligner que dans le cas général, seules les connexions locales sont autorisées (conformément à la bind-address définie dans /etc/mysql/my.cnf). En temps normal, il ne faut pas modifier ce paramètre, car aucune application extérieure à la machine n'est sensée se connecter au serveur MySQL.
  • En particulier, si l'on considère une architecture LAMP (Linux Apache MySQL PHP), le serveur Apache est installé sur la même machine que le serveur MySQL, et il n'y a donc aucune raison que le serveur MySQL écoute du trafic provenant de l'extérieur.
  • On limite ainsi les risques d'attaques puisque seule une application lancée depuis la machine que le serveur MySQL peut tenter de s'y connecter.

Bonne chance

0