MySQL ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)
Lassen Sie mich zunächst erwähnen, dass ich habe gegangen durch viele vorgeschlagenen Fragen und fand keine relevant Antwort. Hier ist, was ich Tue.
Ich bin verbunden mit meiner Amazon EC2-Instanz. Ich kann login mit MySQL-root mit diesem Befehl:
mysql -u root -p
Dann erstellte ich einen neuen Benutzer Rechnung mit host %
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';
Gewährt alle Berechtigungen, Benutzer bill:
grant all privileges on *.* to 'bill'@'%' with grant option;
Dann habe ich exit vom Benutzer root und loggen Sie sich mit bill:
mysql -u bill -p
das korrekte Passwort eingegeben und bekam diese Fehlermeldung:
ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)
Hast du
NÖ. Lassen Sie mich versuchen,
Okay, ich habe versucht, ohne Erfolg. Jeder andere Vorschlag bitte.
Dies geschah zu mir, während der Installation von Magento, und ich machte einen viel dümmer Fehler. Putting 'mysql -u magento -p magento' wurde aufgefordert mich nach einem Passwort und, anstatt das default-Passwort ein ich wurde, das root-Passwort.
leider, keine der vorgeschlagenen Lösungen funktionierten für mich an der Zeit, diese Frage gepostet wurde. Bitte siehe meine eigene Antwort, die mir geholfen haben bekommen outa dieser situation. Das ist der Grund, warum ich nicht markieren Sie als Antwort. Ich kann wahrscheinlich markieren Sie die am höchsten bewerteten Antwort als Antwort.
FLUSH PRIVILEGES
?NÖ. Lassen Sie mich versuchen,
Okay, ich habe versucht, ohne Erfolg. Jeder andere Vorschlag bitte.
Dies geschah zu mir, während der Installation von Magento, und ich machte einen viel dümmer Fehler. Putting 'mysql -u magento -p magento' wurde aufgefordert mich nach einem Passwort und, anstatt das default-Passwort ein ich wurde, das root-Passwort.
leider, keine der vorgeschlagenen Lösungen funktionierten für mich an der Zeit, diese Frage gepostet wurde. Bitte siehe meine eigene Antwort, die mir geholfen haben bekommen outa dieser situation. Das ist der Grund, warum ich nicht markieren Sie als Antwort. Ich kann wahrscheinlich markieren Sie die am höchsten bewerteten Antwort als Antwort.
InformationsquelleAutor Ali | 2012-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vermutlich haben Sie ein anonymer Benutzer
''@'localhost'
oder''@'127.0.0.1'
.Als pro das Handbuch:
Damit, wie ein anonymer Benutzer würde "Maske" alle anderen Benutzer wie
'[any_username]'@'%'
beim Anschluss vonlocalhost
.'bill'@'localhost'
passt'bill'@'%'
, aber würde passen (z.B.)''@'localhost'
beforehands.Die empfohlene Lösung ist, fallen diese anonyme Benutzer (normalerweise ist dies eine gute Sache zu tun sowieso).
Unten Bearbeitungen sind meist irrelevant für die wichtigste Frage. Diese sind nur dazu da um die Beantwortung einiger Fragen, die in anderen Kommentaren in diesem thread.
Bearbeiten 1
Authentifizierung als
'bill'@'%'
über eine socket.Edit 2
Exakt gleichen setup, außer, dass ich re-aktiviert die Vernetzung, den ich jetzt erstellen Sie einen anonymen user
''@'localhost'
.Edit 3
Gleiche situation wie in edit 2 bietet nun das Kennwort des anonymen Benutzers.
Schlussfolgerung 1 aus edit 1: kann Man sich als
'bill'@'%'
über eine socket.Fazit 2, aus edit 2: Ob eine Verbindung über TCP oder über eine socket hat keine Auswirkungen auf den Authentifizierungsprozess (außer man kann sich nicht verbinden, wie jemand anderes, aber
'something'@'localhost'
durch einen sockel, natürlich).Fazit 3 von edit 3: Obwohl ich angegeben
-ubill
habe ich Zugriff als anonymer Benutzer. Dies ist, weil der "Sortier-Regeln", riet oben. Beachten Sie, dass in den meisten Standard-Installationen, ein no-password, anonyme Benutzer vorhanden ist (und sollte gesichert werden/entfernt).Seien Sie besonders vorsichtig mit diesem umgehen. Sie können anonymen Zugriff auf Ihre Datenbank von jedem beliebigen Ort aus. Im Zweifel würde ich eher den Benutzer löschen.
Vielen Dank für diesen Kommentar! Wahrscheinlich sollte ich einfach löschen anonymer Benutzer. P. S. ich fand dev.mysql.com/doc/refman/5.1/en/default-privileges.html, die sagt, dass diese Nutzer sicher gelöscht werden können:
DROP USER ''@'localhost';
. Sie sind nicht erforderlich für einen speziellen Zweck.Ich ließ den anonymen Benutzer, aber die Dinge immer noch nicht. Dann fand ich, ich müsse die Angelegenheit auch "FLUSH PRIVILEGES". Es wäre hilfreich zu erwähnen, dass auch.
Warum wählen Sie nicht diese als beste Antwort?
InformationsquelleAutor RandomSeed
Versuchen:
Das ist eher gefährlich, wenn jemand hacks Ihrem bill@localhost mysql-account hat, hat er unbeschränkten Zugriff auf alle Datenbanken auf Ihrem mysql-server.
Whehey. Ich musste zitieren, um meine Benutzer "myusername'@'myhost.static.myip.com' dann hat es geklappt.
Das funktioniert für mich, aber ich fürchte, ich gab zu viel Berechtigungen für den Benutzer
Sie haben, reduzieren Sie die Berechtigungen erneut, bis Ihre Benutzer hat, was er braucht und nicht mehr.
InformationsquelleAutor Edgar Aviles
Wenn Sie lief
und habe diesen Fehler
mysqld erwartet, Sie zu verbinden, wie
bill@localhost
Versuchen, die Schaffung
bill@localhost
Wenn Sie möchten, eine Remote-Verbindung herzustellen, müssen Sie entweder den DNS-Namen der öffentlichen IP oder 127.0.0.1 über TCP/IP:
Sobald Sie sich anmelden, führen Sie bitte diese
USER() berichtet, wie Sie versucht, sich zu authentifizieren, die in MySQL
CURRENT_USER() berichten, wie Sie zugelassen wurden, zur Authentifizierung in MySQL aus der mysql.Benutzer Tabelle
Dadurch erhalten Sie eine bessere Sicht davon, wie und warum Sie waren erlaubt, um den login zu mysql. Warum ist diese Ansicht wichtig, zu wissen? Es hat zu tun mit der Authentifizierung der Benutzer, die Bestellung zu Protokoll.
Hier ist ein Beispiel: ich erstelle ein anonymer Benutzer auf meinem desktop MySQL
OK gucke mir melden Sie sich als anonymer Benutzer:
Authentifizierung Bestellung ist sehr streng. Es prüft die von den meisten der spezifisch auf die Beine. ich schrieb über diese authentiation Stil in den DBA StackExchange.
Vergessen Sie nicht explizit aufrufen, für TCP als Protokoll für die mysql-client, wenn nötig.
'bill'@'localhost'
sollten übereinstimmen'bill@%'
, sollte es nicht?die Sortierreihenfolge basiert nicht ausschließlich auf mysql.Benutzer, die die Benutzer-Spalte. MySQL unterstützt nicht alle Zeichen matching per se. Ich schrieb über die Benutzer-Authentifizierung Bestellung-Protokoll im DBA-StackExchange : dba.stackexchange.com/a/10897/877
Dies ist der Grund, warum ich ausdrücklich erwähnt
SELECT USER(),CURRENT_USER();
. Sie fast nie sehen anonyme Benutzer angezeigt werden, die von diesen beiden Funktionen, außer in wirklich schlechte setups.Ich habe nie angenommen, dass der Sortierreihenfolge basiert ausschließlich auf
mysql.user
. In der Tat, wenn Sie Lesen, meine Antwort wieder, werden Sie sehen, dass ich sagte (eigentlich im Handbuch steht) die Sortierreihenfolge beruht auf derhost
ersten Spalte. Sie schrieb viel darüber, wie Sie überprüfen, Ihre aktuellen Anmeldeinformationen, aber ich sehe wenig Informationen, warum'bill'@'localhost'
nicht anmelden, da'bill'@'%'
, das ist heute die Frage AFAIK. Der OP hat vermutlich einen schlechten setup, das ist, warum bekommt er diesen Fehler.--protocol=TCP
war der Schlüssel. Ich danke Ihnen sehr!InformationsquelleAutor RolandoMySQLDBA
Wenn Sie
mysql -u root -p
Sie sind die Verbindung zum mysql-server über einen lokalen unix-socket.Jedoch der Zuschuss, den Sie gab,
'bill'@'%'
nur TCP/IP-verbindungen neugierig genug.Wenn Sie wollen, um den Zugriff auf den lokalen unix-socket, die Sie brauchen, um zu gewähren, Berechtigungen für 'bill'@'localhost' , die kurioserweise ist nicht das gleiche wie "bill'@'127.0.0.1'
Könnte man auch eine Verbindung über TCP/IP mit dem mysql-Kommandozeilen-client ist, entsprechen die Berechtigungen, die Sie bereits gewährt, z.B. laufen
mysql -u root -p -h 192.168.1.123
oder welche lokale IP-Adresse Ihrer box haben.skip-networking
Ich kann nicht 'user'@'%', um die Funktion in so ein setup, was meinst du, sollte passieren ?
Ich konnte die Verbindung als 'bill'@'%' auf eine v5.0 ohne Netzwerk (daher, über ein socket). Welche version verwenden Sie? Ich werde versuchen, es auf einem v5.5.
Bitte siehe meine aktualisierte Antwort. Ich konnte mich einloggen wie
'bill'@'%'
durch einen socket auf einem v5.5.InformationsquelleAutor nos
Damit das problem in meinem Fall wurde versucht, eine Verbindung mit :
Leerzeichen IST offenbar erlaubt, zwischen den -u #uname - # aber NICHT zwischen dem -p und #Passwort#
Daher erforderlich:
Sonst mit Leerzeichen zwischen -p mypass mysql nimmt 'mypass', wie die db Namen
tolle Antwort @mstram
diese Lösung ist bequem, doch es ist unsicher, geben Sie password ein, das ist klar, aber keine Notwendigkeit, geben Sie gewähren Vorrechte und definieren, andere Sachen. Also, wenn Sie mac book gesichert ist – dieser Ansatz ist sehr komfortabel, sogar noch mehr, ich habe es für den Import von Daten zu aws von docker-mysql-Treiber.
InformationsquelleAutor mstram
Sparen Sie sich eine GROßE Kopfschmerzen... Dein problem könnte sein, dass Sie fehlen die Anführungszeichen für das Passwort. Das war zumindest mein Fall, abgemildert mich für 3 Stunden.
http://dev.mysql.com/doc/refman/5.7/en/option-files.html
Suche nach "Hier ist eine typische Benutzer-Optionsdatei:" und sehen Sie die Beispiel Sie Stand dort. Viel Glück, und ich hoffe, um jemand anders zu retten einige Zeit.
InformationsquelleAutor mimoralea
Super spät zu dieser
Ich habe versucht, alle diese anderen Antworten und lief viele verschiedene Versionen von
mysql -u root -p
aber nie lief nurmysql -u root -p
Und drücken
[ENTER]
für das Passwort.Einmal habe ich, dass es geklappt hat. Hoffe, das jemand hilft.
InformationsquelleAutor garrettmac
Wenn Sie Ihr Passwort vergessen oder Sie möchten Ihr Passwort zu ändern.Sie können diesen Schritten Folgen :
Bingo! Sie können Ihre Datenbank mit Ihrem Benutzernamen und dem neuen Passwort:
mysql.server stop
. In meinem Fall konnte ich nicht aktualisieren Sie die Benutzer-Spalte, da gibt es nicht; konnte auch keine erstellen, weil es im abgesicherten Modus. Für das, was ich gerade mache ist mir egal, aber ich wirklich zu schätzen dieses format die Antwort mit den genauen Eingaben & Ausgänge angezeigt. danke!Ich bin traurig ,dass ich nie einen mac vor.Also ich kann dir nicht helfen.
InformationsquelleAutor Li Yingjun
Die Lösung ist das löschen der anonymen (Jeder) user!
Ich auch vor dem gleichen Problem auf einem server-setup, indem jemand anderes. Ich normalerweise don ' T wählen Sie zum erstellen eines anonymen Benutzers bei der Installation von MySQL, so hatte dies nicht bemerkt. Zunächst habe ich angemeldet als "root" - Benutzer erstellt und ein paar "normale" Benutzer (aka Anwender mit Privilegien nur auf dbs mit Ihren Benutzernamen als Präfix), dann abgemeldet, dann ging auf, um zu überprüfen, die ersten normalen Benutzer. Ich konnte mich nicht einloggen. Weder über phpMyAdmin, noch über die shell. Stellt sich heraus, der Täter ist das "Jeder" user.
InformationsquelleAutor fevangelou
Die beste Lösung fand ich für mich selbst ist.
mein Benutzer ist sonar und immer wenn ich versuche eine Verbindung zu meinem Datenbank, aus externen oder andere Maschine, die ich bin immer Fehler wie
Auch, wie ich versucht bin, diese von einem anderen Rechner aus und durch Jenkins job meine URL für den Zugriff ist
wenn Sie möchten, eine Remote-Verbindung können Sie es mit verschiedenen Möglichkeiten, wie folgt:
Zugriff auf diese URL, die Sie gerade haben, führen Sie die folgende Abfrage.
InformationsquelleAutor Abhijeet Kamble
Okay, ich bin mir nicht sicher, aber wahrscheinlich ist dies mein.cnf-Datei im mysql-Installationsverzeichnis ist der Schuldige.
Kommentieren Sie diese Zeile und das problem könnte gelöst werden.
Ich bin mir ziemlich sicher, dass dies nicht das Problem. Wenn es wäre, MySQL weigert sich, verbindungen von anderen Hosts als 127.0.0.1 ein, und Sie erhalten keine SQL 'Zugriff Verweigert' - Fehler.
InformationsquelleAutor Ali
Wollte nur lassen Sie wissen, ein ungewöhnlicher Umstand habe ich den gleichen Fehler. Vielleicht hilft jemand in der Zukunft.
Ich entwickelt hatte, ein paar Basis-views, erstellt bei der Entwicklung vor Ort und übergeben Sie an die Produktion-Website. Später in dieser Woche änderte ich ein PHP-Skript und alle von einer plötzlichen Fehler kam, dass der Zugriff wurde verweigert für Benutzer 'local-web-Benutzer'@'localhost'. Das datasource-Objekt nicht geändert hatte, so konzentrierte ich mich auf den Datenbank-Benutzer in MySQL, sorgen in der Zwischenzeit jemand gehackt mein website. Zum Glück ist der rest der Seite schien unverletzt.
Später stellte sich heraus, dass die Ansichten waren der Täter(s). Unsere Objekt-transfers werden mit einem anderen (remote: admin@ip-Adresse) Benutzer als lokaler Benutzer der Webseite. So die Ansichten erstellt wurden mit 'admin'@'ip-Adresse' als definer. Die Ansicht Schaffung von SICHERHEIT standardmäßig ist
Beim local-web-Benutzer versucht, die Sicht zu verwenden, es stolpert auf die fehlende Privilegien der definer zur Nutzung der Tabellen. Sobald Sicherheit wurde geändert zu:
das Problem behoben wurde. Das eigentliche problem war ganz anders als erwartet, basierend auf der Fehlermeldung.
InformationsquelleAutor Erik
Es ist ein Unterschied zwischen:
und
Check it:
Den Befehl
Zugang implizit 'bill'@'localhost' und NICHT zu 'bill'@'%'.
Gibt es keine Berechtigungen für 'bill'@'localhost'
erhalten Sie die Fehlermeldung:
Lösung des Problems:
InformationsquelleAutor Gerd
Passiert das auch, wenn Sie Ihr Passwort enthält Sonderzeichen, wie @,$,etc.
Um diese situation zu vermeiden, können Sie wickeln Sie das Kennwort in einfache Anführungszeichen:
Oder anstelle verwenden Sie nicht das Passwort während der Eingabe. Lassen Sie das Feld leer und geben Sie es bei der terminal fragt. Dies ist der empfohlene Weg.
pwgen
. Heute habe ich erzeugt eine neue MySQL-Datenbank und den Benutzer. Leider ist das Passwort enthalten einen umgekehrten Schrägstrich"\", die ich nicht identifizieren, da der Fehler Herkunft (ich dachte nicht einmal daran, dass). Also suchte ich nach Stunden eine Lösung. Nach der Einstellung das Kennwort "123" in Verzweiflung die Anmeldung endlich geklappt. ... Benutzer sollten sich bewusst sein, dass einige Sonderzeichen können Probleme verursachen, da MySQL nicht zeigt keine Warnungen an die Verwendung von Passwörtern wie "daiy4ha4in7chooshuiphie\Th*aew", zum Beispiel.War etwa in diesem post als Antwort, wenn es noch nicht gezeigt aber es war einfach zu weit unten auf der Liste für mich zu bemerken (also ich hab Sie stoßen bis +1)
InformationsquelleAutor Pranit More
Nicht sicher, ob jemand anderes finden diese hilfreich, aber ich traf die gleichen Fehler und suchte alle über für jeden anonymen Benutzer...und es waren keine. Das problem war, dass das Benutzerkonto auf "SSL Erforderlich" - das fand ich in PHPMyAdmin, gehen Sie zu Benutzer-Konten und klicken auf Bearbeiten die Berechtigungen für die Benutzer. Sobald ich das deaktiviert diese option, funktioniert alles wie erwartet!
InformationsquelleAutor Alan
Für mich, dieses problem wurde verursacht durch ein neues feature von MySQL 5.7.2:
user
Einträge sind ignoriert wenn Ihreplugin
Feld leer ist.Einstellen, dass es z.B.
mysql_native_password
zu reaktivieren, Sie:Sehen die release notes for MySQL 5.7.2, unter «Authentifizierung» Noten.
Aus irgendeinem Grund (vielleicht, weil meine pre-4.1 Passwort-hashes wurden entfernt), die
mysql_upgrade
Skript nicht mit Standard-Plug-Wert.Fand ich heraus, zu bemerken, dass die folgende Warnmeldung in
/var/log/mysql/error.log
:Ich poste diese Antwort hier vielleicht jemand retten mit den gleichen lächerlichen Betrag von Zeit, auf diese, wie ich es Tat.
InformationsquelleAutor maxelost
Debugging Zusammenfassung
Es ist eine große chance, dass Sie möglicherweise auf dieses Problem mehrere Male in Ihrer Arbeit. Das Problem trat auf mich die meiste Zeit aufgrund der falsch Eingabe von Benutzername oder Kennwort. Obwohl dies ist einer der Gründe, es gibt viele andere Chancen erhalten Sie möglicherweise dieses Problem. Manchmal sieht es sehr ähnlich aus, aber wenn man tiefer Graben, Sie werden erkennen, mehrere Faktoren, die zu diesem Fehler beitragen. Dieser Beitrag wird im detail erklärt, die meisten der häufigsten Gründe, und Arbeit um dieses Problem zu beheben.
Mögliche Gründe:
Dies ist der häufigste Grund für diesen Fehler. Wenn Sie in das Benutzername oder Passwort falsch sind, sicher werden Sie diese Fehlermeldung erhalten.
Lösung:
Lösung für diese Art von Fehler ist sehr einfach. Geben Sie einfach Benutzername und Passwort. Dieser Fehler wird behoben werden. Im Falle dass, wenn Sie das Kennwort vergessen haben setzen Sie die Benutzername/Passwort.
Wenn Sie vergessen, das Passwort für den admin /root-account, es gibt viele Möglichkeiten, um reset /Rückeroberung des root-Passworts. Werde ich einen anderen post auf, wie zurücksetzen des root-Passworts im Falle dass, wenn Sie root-Passwort vergessen.
MySQL bietet host-basierte Einschränkung für Benutzer der Zugang als Sicherheits-features. In unserer Produktionsumgebung, wir beschränken den Zugang nur auf Anfrage an den Anwendungsserver. Diese Funktion ist sehr hilfreich in vielen Produktions-Szenarien.
Lösung:
Wenn Sie vor dieser Art von Problem zuerst prüfen, ob dein host erlaubt ist oder nicht, indem Sie die mysql.in der Tabelle user.
Wenn es nicht definiert ist, können Sie die update-oder insert neuer Datensatz, mysql.in der Tabelle user.
In der Regel, der Zugriff als root-Benutzer von einem remote-Computer deaktiviert ist, und es ist nicht empfehlenswert, wegen der Sicherheit Bedenken.
Wenn Sie Anforderungen haben, um Zugang zu Ihrem server aus mehrere Maschinen, Zugriff nur auf diesen Maschinen. Es ist besser, nicht zu verwenden Sie Platzhalterzeichen (%) ein und gibt eine Universelle zugreift.
Lassen Sie mich update mysql.in der Tabelle user, nun die demouser kann Zugriff auf MySQL-server von einem beliebigen host.
Diese Art von Fehler tritt auf, wenn der Benutzer, die Sie zugreifen möchten, nicht vorhanden ist, auf dem MySQL-server.
Lösungen:
Wenn Sie vor dieser Art von Problem, nur überprüfen Sie, ob der Benutzer existiert in mysql.in der Tabelle user oder nicht. Wenn der Datensatz nicht existiert, wird der Benutzer nicht zugreifen kann. Wenn es eine Anforderung, dass Benutzer Zugriff auf, erstellen Sie einen neuen Benutzer mit diesem Benutzernamen.
Wichtige Punkte
Ist es nicht ratsam, die Verwendung von Platzhaltern bei der Festlegung der host-Benutzer, die versuchen, die genaue host-Namen.
Root-login von remote-Maschine.
Verwenden proxy-user-Konzept.
Es gibt einige andere Begriffe im Zusammenhang mit diesem Thema und den Einstieg in die Einzelheiten zu diesen Themen ist sehr unterschiedlich Rahmen dieses Artikels. Wir suchen Sie in den folgenden verwandten Themen in den kommenden Artikeln.
Ich hoffe, dieser Beitrag wird Ihnen helfen, für Sie zum Update der MySQL-Fehler-Code 1045 Access denied for user in MySQL.
InformationsquelleAutor Abhijit Jagtap
Ich hoffe, Sie haben nicht mehr Schaden gemacht, indem auch das löschen der debian-sys-maint user in mysql
Haben Ihren mysql-daemon laufen, der normale Weg. Starten Sie Ihren mysql-client wie unten gezeigt
In einem anderen terminal
cat
die Datei/etc/mysql/debian.cnf
. Diese Datei enthält ein Passwort, fügen Sie das Passwort, wenn Sie dazu aufgefordert werden.http://ubuntuforums.org/showthread.php?t=1836919
InformationsquelleAutor ysk
Hatte ich ein etwas ähnliches problem - bei meinem ersten Versuch, geben Sie MySql als root, da sagte mir der Zugriff verweigert. Stellt sich heraus, dass ich vergessen, das sudo...
So, wenn Sie nicht auf root zuerst versuchen, versuchen:
sudo mysql -u root -p
und geben Sie dann Ihr Kennwort ein, das funktionieren sollte.
InformationsquelleAutor David Refaeli
Entdeckte ich noch einen anderen Fall, erscheint auf der Oberfläche, um eine Kante Fall, ich kann Sie exportieren, um die Datei-system, per SELECT INTO .. OUTFILE als root, aber nicht als normaler Benutzer. Dies mag zwar eine Frage der Berechtigungen, habe ich mir angeschaut, und sehe nichts besonders offensichtlich. Alles was ich sagen kann ist, dass die Ausführung der Abfrage als regulärer Benutzer hat alle Berechtigungen für die Datenbank in Frage, gibt der access denied Fehler, der führte mich zu diesem Thema. Wenn ich die Abschrift eines erfolgreichen verwenden von SELECT INTO OUTFILE ... in einem alten Projekt, bemerkte ich, dass ich als root angemeldet sind. Sicher genug, wenn ich als root eingeloggt sind, wird die Abfrage lief, wie erwartet.
InformationsquelleAutor David A. Gray
Ich dieses Problem gelöst durch löschen des alten buggy-Nutzer 'bill' Einträge (dies ist der wichtige Teil: sowohl aus mysql.Benutzer und mysql.db), dann entsteht der gleiche Benutzer als traurig:
Gearbeitet, wird der Benutzer eine Verbindung herstellen. Jetzt werde ich entfernen Sie einige previlegies aus 🙂
InformationsquelleAutor dxvargas
Auf Fenster ,Wie zu beheben ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicht vergessen auf akzeptieren zu beantworten und upvote
InformationsquelleAutor Sanjay
Traf ich den gleichen Fehler. Das setup, das nicht funktioniert ist wie folgt:
Die bearbeiteten setup unten ist die eine, die es geschafft habe. Den Unterschied bemerken?
Ist der Unterschied der Anführungszeichen. Sie scheinen ganz erheblich in PHP im Gegensatz zu Java und Sie haben einen Einfluss, wenn es darum geht zu entkommen Zeichen, das einrichten von URLs und jetzt, Parameter an eine Funktion übergeben. Sie sind schöner (ich weiß), sondern benutze immer single quotes, so viel wie möglich von doppelten Anführungszeichen können geschachtelt werden innerhalb dieser, falls erforderlich.
Dieser Fehler kam, als ich testete meine Anwendung auf einer Linux-box im Gegensatz zu einer Windows-Umgebung.
InformationsquelleAutor Raymond Wachaga
OS: windows
Meine Fehlermeldung:"MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"
Mein Grund nicht öffnen, cmd mit
administrator permission
also meine Lösung:öffne cmd mit
administrator permission
,dann funktioniert es.InformationsquelleAutor yilin
Dies können nur sehr wenige Menschen, aber hier geht. Verwenden Sie nicht einen exaclamation (!) in Ihrem Passwort. Ich Tat es und bekam die obige Fehlermeldung mit MariaDB. Wenn ich es vereinfacht nur zahlen und Buchstaben gearbeitet. Andere Zeichen wie @ und $ funktionieren - habe ich diese Zeichen in einem anderen Benutzer auf der selben Instanz. Die fünfte Antwort auf diese Adresse führte mich zu meinem Update.
InformationsquelleAutor Chiwda
MySQL-account-Namen bestehen aus einem Benutzernamen und host-Namen, Den Namen 'localhost' in " host-name gibt den lokalen host Sie können auch die Platzhalterzeichen "%" und "_" in " host-name oder die IP-Adresse Werte. Diese haben die gleiche Bedeutung wie für pattern-matching-Operationen, die mit dem LIKE-operator. Zum Beispiel, eine host-Wert '%' entspricht einer beliebigen host-Namen, wobei ein Wert von '%.mysql.com " wird mit jedem host in der mysql.com domain. '192.168.1.%' entspricht einem beliebigen host im class-C-Netzwerk 192.168.1.
Oben war nur Einführung:
eigentlich beide Benutzer
'bill'@'localhost'
und'bill'@'%'
sind verschiedene MySQL-Konten, folglich, beide sollten Ihre eigenen Authentifizierungs-details wie Passwort.Weitere Informationen finden Sie http://dev.mysql.com/doc/refman//5.5/en/account-names.html
InformationsquelleAutor Mahesh Patil
Beim ausführen
mysql -u bill -p
,localhost
ist entschlossen, Ihre ip, da ist es 127.0.0.1 und in Ihrem/etc/hosts
- Datei, als Standard127.0.0.1 localhost
vorhanden ist. So, mysql interpretiert Sie alsbill@localhost
die nicht gewährtbill@'%'
. Das ist, warum gibt es 2 verschiedene Datensätze fürroot
Benutzer im Ergebnisselect host, user from mysql.user;
Abfrage.Gibt es zwei Möglichkeiten zum behandeln dieses Problem.
Ist die Angabe einer ip, die nicht rückwärts aufgelöst
/etc/hosts
- Datei, wenn Sie versuchen sich einzuloggen. Zum Beispiel, die ip von server ist10.0.0.2
. Wenn Sie den Befehl ausführenmysql -u bill -p -h 10.0.0.2
, werden Sie in der Lage, um sich einzuloggen. Wenn Sieselect user();
erhalten Sie[email protected]
. Natürlich, alle domain-Namen, sollten Sie nicht gelöst werden, um diese ip in Ihrem/etc/hosts
Datei.Zweitens müssen Sie den Zugriff gewähren für diese spezifische domain-Namen. Für
bill@localhost
sollten Sie call-Befehlgrant all privileges on *.* to bill@localhost identified by 'billpass';
. In diesem Fall werden Sie in der Lage, sich mit Befehlmysql -u bill -p
. Einmal logined,select user();
Befehl gibtbill@localhost
.Aber das ist nur für Sie, dass Sie versuchen sich einzuloggen, einen mysql-server in der gleichen host. Von remote-hosts, mysql verhält sich erwartungsgemäß, '%' zu gewähren, um sich einzuloggen.
InformationsquelleAutor Shnkc
Sicher sein, es gibt keine anderen SQL-Instanzen laufen, dass die Verwendung der localhost-post. In unserem Fall eine andere Instanz läuft auf dem localhost, die in Konflikt mit dem login. Ausschalten dieses problem gelöst.
InformationsquelleAutor eriwin
Aber auch das problem kann auftreten, wenn Sie die alte version der MySQL-UI (wie SQLYoug) , generiert Passwörter mit falschen hash.
Erstellen Benutzer mit SQL-Skript behebt das problem.
InformationsquelleAutor Stanislav
Ich hatte das gleiche problem, aber in meinem Fall die Lösung wurde gelöst, indem der Kommentar von eggyal. Ich hatte ein anonymer Benutzer als gut, aber entfernen Sie nicht das problem lösen. Die 'FLUSH PRIVILEGES' - Befehl gearbeitet aber.
Das überraschende für mich war, dass ich den Benutzer erstellt mit MySQL Workbench und ich hätte erwartet, dass führen Sie alle notwendigen Funktionen, um die Aufgabe abzuschließen.
InformationsquelleAutor jgibbs