Problem beim Einrichten eines MySQL Benutzers

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

mysqld Ver 5.1.38

ich möchte einen neuen MySQl Benutzer einrichten, der Rechte auf eine bestimmte Datenbank (d01219e7) haben soll.

Dazu logge ich mich als root Benutzer in mysql ein und gebe folgende Kommandos ein (Antworten in blau):
Code:
mysql> CREATE USER 'd01219e7'@'localhost' IDENTIFIED BY 'p407r4mqg';
[COLOR="#316acf"]Query OK, 0 rows affected (0.00 sec)[/COLOR]
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON d01219e7.* TO 'd01219e7'@'localhost' IDENTIFIED BY 'p407r4mqg';
[COLOR="#316acf"]Query OK, 0 rows affected (0.00 sec)[/COLOR]

Wenn ich mich aber anmelden möchte, erhalte ich folgendes Ergebnis:
Code:
% mysql -u d01219e7 -p407r4mqg d01219e7
[COLOR="#316acf"]ERROR 1045 (28000): Benutzer 'd01219e7'@'localhost' hat keine Zugriffsberechtigung (verwendetes Passwort: Ja)[/COLOR]

Was mach ich falsch?
 
Hi,

meld dich mal als root an und gib "FLUSH PRIVILEGES" ein, evtl. wurde die Rechtetabellen noch nicht aktualisiert. Ansonsten kannst du dir das CREATE USER aber auch sparen, es reicht wenn du den Grant-Befehl abschickst und danach "FLUSH PRIVILEGES" ausführst.

Viele Grüße
Martin
 
FLUSH PRIVILEGES hatte ich schon probiert, obwohl man das (laut Doku) bei GRANT nicht braucht.
Zuerst hatte ich auch ohne CREATE versucht.
Immer das selbe Ergebnis.
 
Kannst Du Dich als Superuser anmelden? Wenn ja, schau mal, was dieser Select ergibt:


Welches Ergebnis bekommst Du bei diesem Select?


mysql> select Host, User from mysql.user;
+-----------+------+
| Host | User |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)


Was steht im Feld Host beim User d01219e7 ?

Möglicherweise versuchst Du Dich falsch anzumelden. Ich mache das so:

Kvasir:~ > mysql -u root -p

Du wirst dann zur Passworteingabe aufgefordert.
 
Schon länger her das ich mit mysql zu tun hatte.
Aber müßte es nicht:

mysql -u d01219e7 -p p407r4mqg d01219e7

heißen?

Gruß

win2mac
 
Nein, nach dem Schalter -p darf kein Leerzeichen stehen.

Code:
mysql> select Host, User from mysql.user; 
+------------------------+----------+
| Host                   | User     |
+------------------------+----------+
| localhost              | d01219e7 |
+------------------------+----------+
Sollte passen
 
Verstehe nicht ganz: Funktionierts jetzt?

Falls nein, mache mal einen Update auf den Record und ersetze localhost durch %, bzw. versuche dich mal so anzumelden:

Kvasir:~ > mysql -u d01219e7 -h localhost -p
 
Nein, funktioniert leider nicht.

-h localhost dürfte überflüssig sein. Ist Standard. Sieht man ja auch an der Fehlermeldung, dass die Anmeldung @localhost versucht wird.

Ob ich das Passwort gleich oder auf Prompt eingebe, macht auch keinen Unterschied.
Hatte ich schon versucht.
 
versuche mal das:

mysql> CREATE USER 'd01219e7'@'%' IDENTIFIED BY 'some_pass';
 
Hab den Fehler gefunden.

Wenn Ich anstelle von
Code:
mysql -u d01219e7 -p407r4mqg d01219e7
folgendes eingebe:
Code:
mysql -u d01219e7 -p'407r4mqg' d01219e7
kann ich mich verbinden.

War das schon immer so :confused:
Ich muss wohl beim Anlegen des Benutzers die Hochkommas bei IDENTIFIED BY weglassen.
 
Oh mann,

man sollte Posts auch genau lesen :D Der Schalter "-p" bedeutet, dass interaktiv nach dem Passwort gefragt wird. Eine Übergabe des Passwortes ist damit nicht möglich. Das geht nur mit --password=XXXXX. Ich hatte das gleiche Problem erst letzte Woche bei einem automatischen Backupsystem. Probier also mal folgendes:

Code:
mysql -u d01219e7 -p

Danach solltest du nach dem Passwort gefragt werden und es eingeben können. Alternativ direkt so:

Code:
mysql -u d01219e7 --password=XXXX

Hoffe, das hilft!

Viele Grüße
Martin
 
ne, die Hochkomma beim CREATE USER musst Du angeben…

was ergibt das bei Dir:


mysql> show variables like 'socket';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| socket | /tmp/mysql.sock |
+---------------+-----------------+
1 row in set (0.00 sec)
 
Oh mann,

man sollte Posts auch genau lesen :D Der Schalter "-p" bedeutet, dass interaktiv nach dem Passwort gefragt wird. Eine Übergabe des Passwortes ist damit nicht möglich. Das geht nur mit --password=XXXXX.

Das habe ich ja schon in meiner ersten Antwort geschrieben:

Möglicherweise versuchst Du Dich falsch anzumelden. Ich mache das so:

Kvasir:~ > mysql -u root -p

Du wirst dann zur Passworteingabe aufgefordert.
 
Ich bin Euch ja dankbar für Eure Bemühungen, aber es stimmt einfach nicht.
-p => nach dem Passwort wird gefragt
mysql -u d01219e7 -p'407r4mqg' d01219e7
Anmeldung ohne weitere Passwortabfrage.

Probiert´s aus.
Man darf nur nach -p kein Leerzeichen lassen.
 
Probiert´s aus.
Man darf nur nach -p kein Leerzeichen lassen.

stimmt! ;) habe ich noch nie so gemacht…

tmaier@Kvasir:~ > mysql -u someuser -p'some_pwd'
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.5.16 MySQL Community Server (GPL)
 
Ja, nur normalerweise sollte es so gehen:

mysql -u someuser -psome_pwd
also ohne die Hochkommas.
Bei allen anderen Benutzern geht's auch so, nur bei dem, den ich heute anlegen muss, nicht.

Das Problem ist also immer noch nicht gelöst.

Edit:

Beim Anlagen des Benutzers habe ich jetzt anstelle von
Code:
TO 'd01219e7'@'localhost'
geschrieben
Code:
TO d01219e7@localhost
jetzt geht´s.
 
Ich verstehe Deine Syntax nicht. Wieso gibts Du nach dem Passwort noch mal den Usernamen an?

Also hier fuunktionierts so und der User wurde mit Hochkomma angelegt:


tmaier@Kvasir:~ > mysql -u some_user -p'some_pwd';
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.5.16 MySQL Community Server (GPL)
 
Der Benutzername ist identisch mit dem Namen der Datenbank.

Dein Passwort heißt offensichtlich 'some_pwd'
Kannst Du ausprobieren, wenn Du dich wieder mit Passwortabfrage anmeldest.

Bei mir soll das Passwort aber so heißen: 407r4mqg
und nicht so: '407r4mqg'
 
Der Benutzername ist identisch mit dem Namen der Datenbank.

Vielleicht ist das die Quelle des Übels? :/

Dein Passwort heißt offensichtlich 'some_pwd'
Kannst Du ausprobieren, wenn Du dich wieder mit Passwortabfrage anmeldest.

Das führt auch zum Erfolg.

tmaier@Kvasir:~ > mysql -u someuser -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.5.16 MySQL Community Server (GPL)
 
Zurück
Oben Unten