J'ai créé un utilisateur dans MySQL mais je ne peux pas me connecter avec.
MariaDB [(none)]> create user fe_joomla;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on fe_joomla.* to fe_joomla;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show grants for fe_joomla;
+----------------------------------------------------------+
| Grants for fe_joomla@% |
+----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'fe_joomla'@'%' |
| GRANT ALL PRIVILEGES ON `fe_joomla`.* TO 'fe_joomla'@'%' |
+----------------------------------------------------------+
2 rows in set (0.00 sec)
$ mysql -u fe_joomla fe_joomla
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'fe_joomla'
J'ai suivi ce guide. http://www.mysqltutorial.org/mysql-grant.aspx
permissions
mysql
Chloe
la source
la source
mysql -u fe_joomla
sans spécifier une base de données; si cela fonctionne, la base de données n'existe pas et vous devez la créer avant que tout utilisateur puisse y accéder. A-t-il vraiment dituser ''@'localhost'
avec rien dans le''
?? @ Michael-sqlbot: il ne l'a pas fait et c'est la raison pour laquelle 1044 pas 1045. MySQL prend en charge les utilisateurs sans mot de passe, bien que utilisation eux est une question différente.mysql -u fe_joomla -pfe_joomla
et j'ai aussi négligé''@'localhost'
c'est pourquoi j'ai posé une question qui n'avait aucun sens. Tout comme les mots de passe vides, il y a ce méchant utilisateur de chaîne vide créé par défaut dans les anciennes versions (à moins que vous n'exécutiezmysql_secure_installation
) est en correspondance.Réponses:
Les anciennes versions de MySQL comportaient des comptes de test avec des noms d'utilisateurs vides créés par défaut. Ils étaient pour la plupart inoffensifs, mais très problématiques. Il y avait un script appelé
mysql_secure_installation
cela a nettoyé cela, et on dirait qu'il n'a pas été exécuté lorsque votre système a été configuré.Exécutez cette requête pour confirmer:
Notez que
''
est deux caractères de citation simple'
pas un double devis"
.Après avoir vérifié que vous avez une sauvegarde complète pour des raisons de sécurité, supprimez ces comptes de test. (Cela devrait être une opération parfaitement sûre, mais une sauvegarde est une bonne pratique.)
Le problème avec ces comptes de test est qu’il existe un comportement magique lorsqu’il s’agit de faire correspondre les noms d’utilisateur, et un nom d’utilisateur vide a une signification particulière. C’était une mauvaise fonctionnalité qui avait probablement été ajoutée à l’origine pour faciliter la mise en route.
Après cela, votre nouvel utilisateur devrait fonctionner correctement ... mais notez que vous ne devriez pas créer de compte sans mot de passe.
la source
Il semble que vous n'ayez pas entré la commande "privilèges de vidage" pour activer le nouvel utilisateur sans redémarrer.
la source
J'ai abandonné l'utilisateur fe_joomla et l'ai recréé en tant que
fe_joomla@localhost
et accordé des privilèges àfe_joomla@localhost
et cela a fonctionné. je pourrais utilisermysql -u fe_joomla fe_joomla
à présent.La réponse de Michael fonctionnerait probablement aussi.
la source