Accès refusé pour l'utilisateur root en ligne de commande MySQL
Je viens d'installer xampp, et j'utilise la ligne de commande pour écrire mySQL.
J'utilise 'root' sans mot de passe et je peux me connecter à mysql mais je ne peux pas CREATE DATABASE
car je reçois l'erreur 1044 access denied for user '' @ 'localhost'
. Je suis connecté en tant que -uroot
.
J'ai des privilèges dans phpMyadmin pour faire ce que je veux, mais, en ligne de commande, je semble n'avoir aucun privilège d'écriture. J'ai regardé tous les autres messages sur ce sujet mais en vain. Je ne peux pas accorder de privilèges car je n'en ai pas de toute façon.
7 réponses
Vous connectez-vous à MySQL en tant que root? Vous devez accorder explicitement des privilèges à votre compte D'utilisateur MySQL "régulier" lorsque vous êtes connecté en tant que Racine MySQL.
Configurez D'abord un compte root pour votre base de données MySQL.
Dans le type de terminal:
mysqladmin -u root password 'password'
Pour vous connecter à MySQL, utilisez ceci:
mysql -u root -p
Pour définir les privilèges manuellement démarrez le serveur avec l'option skip-grant-tables, ouvrez le client mysql et mettez à jour manuellement le mysql.table utilisateur et/ou le mysql.tables db. Cela peut être un tâche fastidieuse cependant, si ce dont vous avez besoin est un compte avec tous les privs, je ferais ce qui suit.
Démarrez le serveur avec l'option skip-grant-tables
Démarrer le client mysql (sans nom d'utilisateur / mot de passe)
Exécutez la commande
flush privileges;
Qui force le chargement des tables grant.
Créez un nouveau compte avec la commande GRANT quelque chose comme ceci (mais en remplaçant le nom d'utilisateur et le mot de passe par ce que vous voulez utiliser.
GRANT ALL on *.* to 'username'@'localhost' identified by 'password';
Redémarrez le serveur en mode normal (sans skip-grant-tables) et connectez-vous avec votre compte nouvellement créé.
Référez-vous à CE documents MySQL.
Naviguer faire C:\xampp\mysql\bin\ et assurez-vous que le fichier mysql.exe est dans ce dossier.
mysql -uroot -p
Si vous n'avez pas de mot de passe, appuyez simplement sur Entrée.
L'invite change en
mysql>
Faites vos commandes mysql
Par défaut, il n'y a pas de mot de passe est défini pour l'utilisateur root dans XAMPP.
Vous pouvez définir un mot de passe pour l'utilisateur root de MySQL.
Accédez à
Localhost: 80 / sécurité / index.php
Et définir le mot de passe pour l'utilisateur root.
Remarque: veuillez changer le numéro de port dans l'url ci - dessus si votre Apache est sur un port différent.
Ouvrez le panneau de configuration XAMPP cliquez sur le bouton" Shell "
La fenêtre d'invite de commandes s'ouvre maintenant dans cette fenêtre type
mysql -u root -p;
Il demandera le mot de passe tapez le mot de passe que vous avez défini pour l'utilisateur root.
Là, vous êtes connecté en tant qu'utilisateur root: d faites maintenant ce que vous voulez faire: P
J'ai réinstallé le connecteur ODBC MSI et réinstallé mySQL directement (à part xampp) et cela fonctionne maintenant. C'était un problème de connecteur, je pense, car SHOW DATABASES ne montrait pas du tout mes bases de données.
MA connexion 'root' n'avait pas accès à la base de données, ce qui donnait l'impression qu'elle avait des privilèges limités mais qu'elle n'était pas connectée correctement.
Fichier serveur uniquement dossier nom chane
etc / mysql
renommer
mysql-
Cela pourrait aider sur Ubuntu:
Allez dans/etc / mysql / my.cnf et commentez cette ligne:
bind-address = 127.0.0.1
J'espère que cela aide quelqu'un, j'ai cherché cela un moment aussi
Santé
Vous ne devez pas avoir d'espace entre -u
et le nom d'utilisateur:
mysql -uroot -p
# or
mysql --user=root --password