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.

32
demandé sur Evan Carroll 2012-08-01 17:20:07

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.

66
répondu Jacob 2012-08-02 09:14:32

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

9
répondu Paulo Pinto 2012-08-01 13:42:49

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

5
répondu Vishal 2013-10-12 15:17:47

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.

0
répondu gavin 2012-08-02 11:26:27

Fichier serveur uniquement dossier nom chane
etc / mysql
renommer
mysql-

0
répondu alpc 2016-03-30 05:35:58

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é

-1
répondu Tom 2015-02-20 09:07:09

Vous ne devez pas avoir d'espace entre -u et le nom d'utilisateur:

mysql -uroot -p
# or
mysql --user=root --password
-2
répondu feeela 2012-08-01 13:36:35