Après avoir défini le mot de passe root, pourquoi MYSQL me permet-il toujours de me connecter sans mot de passe à partir de la ligne de commande? Je peux taper "mysql" à une invite root unix et il ne demande aucun mot de passe et me permet toujours d'accéder à la racine. Je ne comprends pas pourquoi "mysql -u root" ne me demande PAS MAINTENANT le mot de passe que j'ai défini sur le compte.
De plus, je ne peux pas me connecter au mysql depuis une machine distante en tant que 'root'. Ne l'ai-je pas configuré correctement ci-dessous? J'obtiens l'erreur: "L'hôte ... n'est pas autorisé à se connecter à ce serveur MySQL. Je ne l'ai pas configuré pour '%'?
Voici ma table utilisateur:
mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| % | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| % | | |
+-----------+------+-------------------------------------------+
6 rows in set (0.00 sec)
la source
Eh bien, la réponse est juste dans ce tableau - vous devez supprimer les lignes "root" qui n'ont pas de mot de passe répertorié.
En outre, il semble que vous autorisiez les connexions depuis n'importe où (?!?!) Lorsque vous n'utilisez aucun utilisateur ou passe. Probablement une mauvaise idée. Je ferais quelque chose comme:
la source
N'oubliez pas de FLUSH PRIVILEGES ou vous pouvez toujours vous connecter sans mot de passe.
la source