ubuntuusers.de

MySQL Error 1045

Status: Ungelöst | Ubuntu-Version: Server 10.04 (Lucid Lynx)
Antworten |

skyebluenova

Anmeldungsdatum:
2. August 2010

Beiträge: Zähle...

Hallo alle,

ich hänge an dem gleichen Problem wie einige: MySQL läuft nicht, und Eingaben wie #mysql restart bringen die bekannte Fehlermeldung:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

So weit so gut - ich habe mich durch alle Texte und Lösungsansätze gelesen, im mysqladmin

UPDATE user SET Password=PASSWORD('DeinPasswort') WHERE user='root';

bringt nichts, die Passwörter von debian-sys-maint und root sind auch gleich. Allerdings gibt's in der DB mysql drei verschiedene root-user:

  • root@localhost

  • root@[meineip]

  • root@127.0.0.1

ist das richtig? Die Hashwerte der eingetragenen Passwörter sind alle gleich. Was ich allerdings nicht verstehe: Bei

mysqladmin -u root -p

muss ich ein ANDERES Passwort als das gespeicherte eingeben ... also gesetzt ist überall 'xyz', ich muss aber an dieser Stelle 'abc' eingeben. Irgendwas habe ich wohl kapital falsch gemacht Vielleicht hat jemand einen Tipp, die Lösung ist wohl nicht weit.

Viele Grüße Dennis

Bearbeitet von xabbuh:

Beitrag formatiert. Beachte bitte die Forensyntax. Danke! ☺

toddy Team-Icon

Ikhayateam
Avatar von toddy

Anmeldungsdatum:
31. Juli 2007

Beiträge: 9521

Wohnort: Lüneburg

skyebluenova schrieb:

Hallo alle,

Hallo Dennis und Herzlich Willkommen bei ubuntuusers.de!

ich hänge an dem gleichen Problem wie einige: MySQL läuft nicht, und Eingaben wie #mysql restart bringen die bekannte Fehlermeldung:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Versuch doch bitte mal:

/etc/init.d/mysql restart

Damit solltest Du Mysql starten können.

So weit so gut - ich habe mich durch alle Texte und Lösungsansätze gelesen, im mysqladmin

UPDATE user SET Password=PASSWORD('DeinPasswort') WHERE user='root';

bringt nichts, die Passwörter von debian-sys-maint und root sind auch gleich. Allerdings gibt's in der DB mysql drei verschiedene root-user:

  • root@localhost

  • root@[meineip]

  • root@127.0.0.1

ist das richtig? Die Hashwerte der eingetragenen Passwörter sind alle gleich. Was ich allerdings nicht verstehe: Bei

mysqladmin -u root -p

muss ich ein ANDERES Passwort als das gespeicherte eingeben ... also gesetzt ist überall 'xyz', ich muss aber an dieser Stelle 'abc' eingeben. Irgendwas habe ich wohl kapital falsch gemacht Vielleicht hat jemand einen Tipp, die Lösung ist wohl nicht weit.

Das kann schon richtig sein. Es geht ja darum, welche Nutzer auf der Datenbank eingeloggt sind, oder welche Ausgabe ist hier gemeint? Es gibt prinzipiell nur ein Passwort für den User root in mysql. Dies kann aber auch leer sein. Hat sich was neues bei Dir ergeben? Klappt der oben angegebene Befehl zum Starten der Datenbank?

Liebe Grüße,
Torsten

overtonemagic

Anmeldungsdatum:
8. Oktober 2010

Beiträge: Zähle...

Wohnort: Steiermark

skyebluenova schrieb:

ich hänge an dem gleichen Problem wie einige: MySQL läuft nicht, und Eingaben wie #mysql restart bringen die bekannte Fehlermeldung:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Ich habe das selbe Problem.

So weit so gut - ich habe mich durch alle Texte und Lösungsansätze gelesen, im mysqladmin

UPDATE user SET Password=PASSWORD('DeinPasswort') WHERE user='root';

bringt nichts

So wie ich das verstanden habe, kannst du das Passwort mit dieser Syntax nur im Client "mysql" selbst ändern - also wenn du schon drin bist. mysqladmin ist meines Wissens ein eigenständiges Tool (so wie auch der Client "mysql"), mit dem du das Passwort folgendermaßen änderst:

$ mysqladmin -u root -h localhost - p passwort_alt password passwort_neu

Bei

mysqladmin -u root -p

muss ich ein ANDERES Passwort als das gespeicherte eingeben ... also gesetzt ist überall 'xyz', ich muss aber an dieser Stelle 'abc' eingeben. Irgendwas habe ich wohl kapital falsch gemacht Vielleicht hat jemand einen Tipp, die Lösung ist wohl nicht weit.

Ubuntu-User-Passwörter sind nicht gleich MySQL-User-Passwörter

Das "using password: NO" bedeutet übrigens, dass du gar kein Passwort eingegeben hast. "using password: YES" bedeutet, dass du eines eingegeben hast - allerdings wird offenbar nicht angegeben, ob es auch richtig war. Die Meldung "Access denied" ist sicherlich ein Indiz dafür, dass es möglicherweise nicht richtig war, es gibt aber zahlreiche andere mögliche Gründe dafür, die auf folgender Seite aufgelistet sind:

http://dev.mysql.com/doc/refman/5.1/de/access-denied.html

Keine Ahnung, was davon in unseren Fällen zutrifft. Mein Passwort hab ich jedenfalls korrekt eingegeben.

toddy schrieb:

skyebluenova schrieb:

Versuch doch bitte mal:

/etc/init.d/mysql restart

Damit solltest Du Mysql starten können.

Soviel ich weiß hat man auf diese Weise früher den MySQL-Server (neu) gestartet - seit einigen Versionen startet man ihn nur noch mit

$ sudo service mysql start

Anstelle von "start" kann man ihn übrigens unter anderem mit "stop" stoppen, mit "restart" wie von toddy erwähnt neu starten und mit "status" den aktuellen Status abfragen.

Aber unser Problem ist es gar nicht, den Server zu starten - der läuft ja glaub ich per default sowieso immer ab dem Systemstart im Hintergrund. Wir können nur den Client mit dem Namen "mysql" nicht starten.

Ich hoffe, das Thema ist noch nicht vom Tisch!

overtonemagic

Anmeldungsdatum:
8. Oktober 2010

Beiträge: 11

Wohnort: Steiermark

So, für mich habe ich das Problem gelöst. Es ging allein um das Passwort.

Das Passwort, nach dessen Bekanntgabe ich nach der Installation von MySQL gefragt worden bin, wurde für keinen der in Frage kommenden Benutzernamen (inkl. root) akzeptiert. (Auch gar kein Passwort einzugeben (bzw. während der Abfrage einfach "Enter" zu drücken) sowie das -p einfach wegzulassen hat nicht funktioniert. Das sei nur erwähnt, weil es für "root" zu Beginn angeblich gar kein Passwort gibt.)

Ich weiß mittlerweile nicht mehr, von welchem Programm ich danach gefragt worden bin. Auf jeden Fall habe ich jetzt über den mysql-Client intern das Passwort für root neu definiert. Wie, das werde ich im Folgenden kurz beschreiben:

Es gibt in MySQL einen vordefinierten Benutzer, der allen anderen - also auch "root" - quasi übergeordnet ist. Über diesen Benutzer verrichtet MySQL verschiedene (sämtliche?) Arbeiten. Wenn man sich mit diesem Benutzernamen selbst anmeldet, kann man ebenso wie als "root" administrative Aufgaben erledigen - mit dem Unterschied, dass man auch über "root" die Kontrolle hat. So kann man unter anderem eben das Passwort für root definieren, ohne das alte zu kennen.

Dieser Benutzer heißt (auch unter Ubuntu) "debian-sys-maint". Das Passwort für diesen Benutzer steht in der Datei /etc/mysql/debian.cnf, auf die man wahrscheinlich nur als Admin oder Superuser Zugriff hat. Also eventuell mit

sudo nautilus

Superuser werden und nach der Datei browsen.

Dann wie üblich beim mysql-Client mit den nun bekannten Benutzerdaten anmelden (aus Sicherheitsgründen würde ich das Passwort nur nach Abfrage eingeben - also nicht direkt an das -p anhängen):

$ mysql -u debian-sys-maint -h localhost -p

Enter Password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

Jetzt wird das root-Passwort eingestellt:

mysql> USE mysql;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> UPDATE user SET Password=PASSWORD('neues_Passwort') WHERE User='root';

Query OK, 3 rows affected (0.24 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

Und fertig! 👍 Nun kann man sich als root mit dem neuen Passwort anmelden.

Ich vermute, dass das Problem in meinem Fall möglicherweise damit zusammenhing, dass ich bei der erstmaligen Bekanntgabe des Passworts Sonderzeichen verwendet habe, die vielleicht nicht unterstützt werden. Vielleicht gibt es da zwischen dem Fenster, das danach gefragt hat und dem Client ein kleines Übersetzungsproblem, oder man hat die Überprüfung einfach verbockt. Ist aber nur eine kleine Theorie ☺

Antworten |