PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mysql - access denied beim anlegen des passworts für root



achilleus
18.11.02, 20:59
Moin!

Ich stehe schon seit tagen vor diesem Problem, hab auch schon das forum hier durchsucht, hat aber alles nichts gebracht.


--

Ich hab Debian "Woody" auf meinem Server installiert und mit apt mysql installiert.

Nun wenn ich für den root user ein password festlegen will, bekomm ich folgende Fehlermeldung:

server:~# /usr/bin/mysqladmin -u root -h localhost password geheim -p
Enter password:
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'

Anstatt localhost hab ich auch schon 127.0.0.1, die lanip vom server, der dns name probiert, immer wieder die selber Fehlermeldung.

MySql läuft, das hab ich mit ps aux | grep mysql überprüft.

Ich habs auch wie flgt ausprobiert, aber auch ohne Erfolg:

server:~# mysqladmin -u root password geheim
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'

Ich hab dann mal probiert nen telnet auf den mysql server (port 3306) zu machen mit folgendem resultat:

server:~# telnet localhost 3306
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

in der config von mysql ist aber der port 3306 eingetragen

---

Ich verzweifel hier langsam, kann mir vielleicht jemand helfen ?!:confused:

michael.sprick
18.11.02, 22:14
>> /usr/bin/mysqladmin -u root -h localhost password geheim -p

in der Zeile rufst Du den mysqladmin auf, und teilst ihm mit, das er, um seine aktionen auf dem SQL-Server ausführen zu können, ein passwort braucht (-p). MYSQL hat aber noch garkein root passwort zu diesem Zeitpunkt. Also schlägt der Versuch, eines zu benutzen auch fehl....

machs z.B. so:

geh in die mysql-console:

mysql> use mysql;
mysql> update user set password=password('GEHEIM') where User='root';
mysql>exit;

bash> mysqladmin reload

Ab jetzt brauchst Du für den Login ein Passwort....

achilleus
19.11.02, 15:47
ich bekomme folgenden Fehler, wenn ich mysql> use mysql; eingebe:

server:~# mysql> use mysql;
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

HangLoose
22.11.02, 13:30
moin moin

versuch mal folgenden weg

/usr/bin/mysqladmin -u root -p

bei der frage nach dem passwort drückst du einfach enter, das passwort für root dürfte noch nicht vergeben sein

michael.sprick
22.11.02, 13:39
nee - sollte nicht funktionieren. Es ist ein Unterschied, ob ein Passwort gesetzt ist, es aber keinen Wert enthält, oder ob ein Passwort nicht existent ist.

@achilleus:

Ähm...wie hast Du´s jetzt genau eingegeben?

Sollte sein:

mysql [ENTER]

dann bist Du in der mysqlKonsole, die ein Prompt hat, das so aussieht: mysql>

da gibst Du ein:

use mysql; [ENTER]

Benutze nicht die Option -p (noch nicht!)

HangLoose
22.11.02, 13:43
hi bilbo

so hab ich es zumindest bei mir beim ersten start der db gemacht und es ging ;)

anschließend hab ich das passwort für root vergeben, wie du es weiter oben geschildert hast



Gruß HangLoose

achilleus
23.11.02, 11:31
hmm .. da hatte ich wohl was falsch verstanden :( (naja kenn mich mit linux und mysql noch nicht wirklich gut aus)

hab nun einfach als root 'mysql' eingegeben und bekamm wieder mal eine "access denied"-Meldung:

server:~# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

HangLoose
23.11.02, 11:46
hi

kommt bei dir ne aufforderung Enter Password: oder bekommst du die Fehlermeldung sofort?


ps:mysql hat mich auch schon nerven gekostet ;)

Gruß HL

HangLoose
23.11.02, 11:48
ähm

ich nochmal, der user root auf deinem system und der mysql root sind 2 paar verschiedene schuhe.

gib mal

mysql -u root -p

ein, wenn dann nach dem passwort gefragt wird, drückst einfach enter

achilleus
23.11.02, 14:14
geht leider auch nicht :(

server:~# mysql -u root -p
Enter password:
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

hab bei 'Enter password' einfach Enter gedrückt.

HangLoose
23.11.02, 22:34
hi

und wenn du das -p wegläßt? hast du für root (mysql) schon mal ein passwort vergeben?

achilleus
24.11.02, 10:06
huhu,


und wenn du das -p wegläßt?

server:~# mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

er hat mich ncoh ncihtmal nach einem Password gefragt :/


hast du für root (mysql) schon mal ein passwort vergeben?

Nein weil es noch nie geklappt hat.

Hab auch schon MySql inkl. aller config gelöscht und wieder neuinstalliert:(

Pingu
24.11.02, 21:33
Hi,

in der mysql-Doku steht dazu:
After a fresh installation, you should connect to the server and set up your users and their access permissions:


shell> mysql -u root mysql

The server should let you connect because the MySQL root user has no password initially. That is also a security risk, so setting the root password is something you should do while you're setting up your other MySQL users. If you try to connect as root and get this error:


Access denied for user: '@unknown' to database mysql

this means that you don't have an entry in the user table with a User column value of 'root' and that mysqld cannot resolve the hostname for your client. In this case, you must restart the server with the --skip-grant-tables option and edit your `/etc/hosts' or `\windows\hosts' file to add an entry for your host.
Auf deutsch: Du muß Dich nach einer Neuinstallation mit
shell> mysql -u root mysqlein loggen. Sollte dies fehlschlagen mit einer Fehlermeldung ala
Access denied for user: '@unknown' to database mysqloder
Access denied for user: '@localhost' to database mysqloder
Access denied for user: 'root@localhost' to database mysqlDann solltest Du mit
mysqld --skip-grant-tablesneustarten und die entsprechenden Einträge vornehmen
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%"
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
Oder
mysql> INSERT INTO user VALUES('localhost','root',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y ','Y');
mysql> INSERT INTO user VALUES('%','root',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y ','Y');
Wenn dann der Daemon neu gestartet wird, müßte es gehen.

-= Pingu =-

Rebell
20.12.02, 11:49
Ich habe hier noch eine Auflösung für MySQL (unter SuSE 8.1).

Beim Starten von rcmysql start gibt er an welche Datenbanken er benutzt. Fälschlicherweise waren die bei Suse auf /usr gesetzt. Um diese zu ändern, muss man die Datei /etc/my.cnf umschreiben:



(/etc/my.cnf)
datadir=/var/lib/mysql


Denn innerhalb dieses Verzeichnisses befinden sich die Datenbanken (auch die User von Mysql).

# /usr/sbin/mysqld --skip-grant-tables -u mysql

# mysql
mysql> SHOW DATABASES;
mysql> USE mysql;
mysql> SHOW TABLES;
mysql> INSERT INTO user VALUES('localhost', 'root', PASSWORD('passwort'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y ','Y');
(das sind 14 yes')

Dann kam ein Fehler -> insert: duplicate entry localhost-root at key 1

mysql> SELECT * FROM user;
mysql> DELETE FROM user WHERE User='root' AND Host='localhost';
(Query ok, 1 deleted)

Dann nochmal den Insert-Befehl anwenden, dann muss ein OK kommen :)
Nochmal alles anschauen.

mysql> SELECT * FROM user;

Und siehe das das Passwort ist verschlüsselt, anstatt im Klartext, was die Fehlerquelle ist :)
Den Mysql-Server (mysqld --skip-grant-tables) stoppen und mit dem herkömlichen Suse-Befehl

# rcmysql start

von neuem Starten.

# mysql -p
Enter Password:
mysql>

voilá

termito
21.12.02, 20:59
Kann mir mal einer sagen wie ich bei MySQL nen anderen Host im Lan den Zugriff erlauben kann. Von localhost aus gehts. Versuch ich von Windows aus zu connecten, dann krieg ich folgende Fehlermeldung:
1045 - Access denied for user: 'root@pentium.intra.net' (Using password: YES)

Unter der Localhost-konsole kann ich mich einloggen:
# mysql -u root -p
usw.

Übrigens habe ich in "my.cnf" #skip-networking ausdokumentiert

Rebell
31.01.03, 14:00
Du hast entweder bereits einen cookie gespeichert in dem steht dass du kein Passwort verwendest. Oder das phpMyAdmin kann den Hostnamen nicht aufösen... bzw. du kommst von einem anderen Computer, dieser Zugang ist verweigert. Musst also einen Standard-User erstellen ohne Passwort.