Lassen Sie mich zunächst erwähnen, dass ich viele vorgeschlagene Fragen durchgesehen und keine relevante Antwort gefunden habe. Hier ist was ich tue.
Ich bin mit meiner Amazon EC2-Instanz verbunden. Ich kann mich mit MySQL root mit diesem Befehl anmelden:
mysql -u root -p
Dann habe ich eine neue Benutzerrechnung mit Host% erstellt
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';
Gewährt alle Berechtigungen für die Benutzerrechnung:
grant all privileges on *.* to 'bill'@'%' with grant option;
Dann verlasse ich den Root-Benutzer und versuche, mich mit Rechnung anzumelden:
mysql -u bill -p
gab das richtige Passwort ein und bekam diesen Fehler:
FEHLER 1045 (28000): Zugriff für Benutzer 'Rechnung' @ 'localhost' verweigert (mit Passwort: JA)
mysql
access-denied
Ali
quelle
quelle
FLUSH PRIVILEGES
?Antworten:
Sie haben wahrscheinlich einen anonymen Benutzer
''@'localhost'
oder''@'127.0.0.1'
.Gemäß Handbuch :
Daher würde ein solcher anonymer Benutzer jeden anderen Benutzer "maskieren",
'[any_username]'@'%'
wenn er eine Verbindung herstelltlocalhost
.'bill'@'localhost'
stimmt überein'bill'@'%'
, würde aber (zB)''@'localhost'
vorher übereinstimmen .Die empfohlene Lösung besteht darin, diesen anonymen Benutzer zu löschen (dies ist normalerweise sowieso eine gute Sache).
Die folgenden Änderungen sind für die Hauptfrage meist irrelevant. Diese sollen nur einige Fragen beantworten, die in anderen Kommentaren in diesem Thread aufgeworfen wurden.
Bearbeiten 1
Authentifizierung wie
'bill'@'%'
über einen Socket.Bearbeiten 2
Genau das gleiche Setup, außer dass ich das Netzwerk wieder aktiviert habe und jetzt einen anonymen Benutzer erstelle
''@'localhost'
.Bearbeiten 3
Gleiche Situation wie in Bearbeitung 2, jetzt mit dem Passwort des anonymen Benutzers.
Schlussfolgerung 1 aus Bearbeitung 1: Man kann sich wie
'bill'@'%'
über einen Socket authentifizieren .Schlussfolgerung 2 aus Bearbeitung 2: Ob eine Verbindung über TCP oder über einen Socket hergestellt wird, hat keinen Einfluss auf den Authentifizierungsprozess (außer, dass eine Verbindung nur
'something'@'localhost'
über einen Socket hergestellt werden kann).Schlussfolgerung 3 aus Bearbeitung 3: Obwohl ich angegeben habe
-ubill
, wurde mir als anonymer Benutzer Zugriff gewährt. Dies liegt an den oben empfohlenen "Sortierregeln". Beachten Sie, dass in den meisten Standardinstallationen ein anonymer Benutzer ohne Kennwort vorhanden ist (und gesichert / entfernt werden sollte).quelle
DROP USER ''@'localhost';
. Sie werden nicht für einen bestimmten Zweck benötigt.Versuchen:
quelle
Als du gerannt bist
und habe diesen Fehler bekommen
mysqld erwartet, dass Sie sich als verbinden
bill@localhost
Versuchen Sie zu erstellen
bill@localhost
Wenn Sie eine Remoteverbindung herstellen möchten, müssen Sie entweder den DNS-Namen, die öffentliche IP oder 127.0.0.1 mithilfe von TCP / IP angeben:
Sobald Sie sich angemeldet haben, führen Sie dies bitte aus
USER () berichtet, wie Sie versucht haben, sich in MySQL zu authentifizieren
CURRENT_USER () gibt an , wie Sie sich in MySQL aus der Tabelle mysql.user authentifizieren durften
Auf diese Weise erhalten Sie einen besseren Überblick darüber, wie und warum Sie sich bei MySQL anmelden durften. Warum ist es wichtig, diese Ansicht zu kennen? Dies hat mit dem Bestellprotokoll für die Benutzerauthentifizierung zu tun.
Hier ein Beispiel: Ich werde einen anonymen Benutzer auf meinem Desktop MySQL erstellen
OK, schau mir zu, wie ich mich als anonymer Benutzer anmelde:
Die Reihenfolge der Authentifizierung ist sehr streng. Es prüft von den spezifischsten bis zu den geringsten. Ich habe über diesen Authentifizierungsstil im DBA StackExchange geschrieben .
Vergessen Sie nicht, bei Bedarf explizit TCP als Protokoll für den MySQL-Client aufzurufen.
quelle
'bill'@'localhost'
sollte passen'bill@%'
, nicht wahr?SELECT USER(),CURRENT_USER();
. In diesen beiden Funktionen werden fast nie anonyme Benutzer angezeigt, außer in wirklich schlechten Setups.mysql.user
. Wenn Sie meine Antwort noch einmal lesen, werden Sie feststellen, dass ich gesagt habe (tatsächlich heißt es im Handbuch), dass die Sortierreihenfolgehost
zuerst auf der Spalte basiert . Sie haben viel darüber geschrieben, wie Sie Ihre aktuellen Anmeldeinformationen überprüfen können, aber ich sehe nur wenige Informationen darüber, warum Sie'bill'@'localhost'
sich nicht als anmelden können. Dies'bill'@'%'
ist die heutige Frage von AFAIK. Das OP hat wahrscheinlich ein schlechtes Setup, deshalb bekommt er diese Fehler.--protocol=TCP
war der Schlüssel. Vielen Dank!Super spät dazu
Ich habe all diese anderen Antworten ausprobiert und viele verschiedene Versionen von ausgeführt,
mysql -u root -p
aber nie nur ausgeführtmysql -u root -p
Und drücken Sie einfach
[ENTER]
auf das Passwort.Sobald ich das getan habe, hat es funktioniert. Hoffe das hilft jemandem.
quelle
Ein verwandtes Problem in meinem Fall war der Versuch, eine Verbindung herzustellen mit:
Leerzeichen sind anscheinend zwischen -u # uname # erlaubt, aber NICHT zwischen -p und # password #
Daher benötigt:
Ansonsten mit white-space zwischen -p mypass mysql nimmt 'mypass' als db Name
quelle
Wenn Sie tippen
mysql -u root -p
, Sie eine Verbindung herstellen den MySQL - Server über einen lokalen Unix - Socket.Der von Ihnen gewährte Zuschuss
'bill'@'%'
stimmt jedoch seltsamerweise nur mit TCP / IP-Verbindungen überein.Wenn Sie Zugriff auf den lokalen Unix-Socket gewähren möchten, müssen Sie 'bill' @ 'localhost' Berechtigungen erteilen, was seltsamerweise nicht mit 'bill'@'127.0.0.1' identisch ist.
Sie können auch eine Verbindung über TCP / IP mit dem MySQL-Befehlszeilenclient herstellen, um den bereits gewährten Berechtigungen zu entsprechen, z. B. Ausführen
mysql -u root -p -h 192.168.1.123
oder der lokalen IP-Adresse Ihrer Box.quelle
skip-networking
'bill'@'%'
über einen Socket auf einer v5.5 anmelden .Wenn Sie Ihr Passwort vergessen haben oder Ihr Passwort ändern möchten, können Sie folgende Schritte ausführen:
Bingo! Sie können Ihre Datenbank mit Ihrem Benutzernamen und Ihrem neuen Passwort verbinden:
quelle
mysql.server stop
. In meinem Fall konnte ich die Benutzerspalte nicht aktualisieren, da es keine gibt. konnte auch keine erstellen, da sie sich im abgesicherten Modus befindet. Für das, was ich gerade mache, ist es mir egal, aber ich schätze diese Formatantwort mit den genauen angezeigten Ein- und Ausgängen sehr. Vielen Dank!Sparen Sie sich große Kopfschmerzen ... Ihr Problem könnte sein, dass Ihnen die Anführungszeichen um das Passwort fehlen. Zumindest war das mein Fall, der mich 3 Stunden lang umging.
http://dev.mysql.com/doc/refman/5.7/en/option-files.html
Suchen Sie nach "Hier ist eine typische Benutzeroptionsdatei:" und sehen Sie sich das dort angegebene Beispiel an. Viel Glück und ich hoffe, jemand anderem etwas Zeit zu sparen.
quelle
Die Lösung besteht darin, den anonymen (beliebigen) Benutzer zu löschen!
Ich hatte das gleiche Problem auch bei einem Server-Setup von jemand anderem. Normalerweise erstelle ich bei der Installation von MySQL keinen anonymen Benutzer, habe dies also nicht bemerkt. Anfangs habe ich mich als "Root" -Benutzer angemeldet und ein paar "normale" Benutzer erstellt (auch bekannt als Benutzer mit Berechtigungen nur für Datenbankanbieter mit ihrem Benutzernamen als Präfix), mich dann abgemeldet und anschließend den ersten normalen Benutzer überprüft. Ich konnte mich nicht anmelden. Weder über phpMyAdmin noch über die Shell. Es stellt sich heraus, dass der Schuldige dieser "beliebige" Benutzer ist.
quelle
Ich hatte ein ähnliches Problem - bei meinem ersten Versuch, MySQL aufzurufen,
root
wurde mir mitgeteilt, dass der Zugriff verweigert wurde. Es stellte sich heraus, dass ich vergessen habe, diesudo
...Wenn Sie also beim
root
ersten Versuch versagen , versuchen Sie:und geben Sie dann Ihr Passwort ein, dies sollte funktionieren.
quelle
Die beste Lösung, die ich für mich gefunden habe, ist.
Mein Benutzer ist Sonar und wenn ich versuche, von einem externen oder anderen Computer aus eine Verbindung zu meiner Datenbank herzustellen, wird eine Fehlermeldung als angezeigt
Auch wenn ich dies von einem anderen Computer aus und über Jenkins Job versuche, ist meine URL für den Zugriff
Wenn Sie eine Remoteverbindung herstellen möchten, können Sie diese auf verschiedene Arten angeben:
Um mit einer URL darauf zuzugreifen, müssen Sie nur die folgende Abfrage ausführen.
quelle
Okay, ich bin mir nicht sicher, aber wahrscheinlich ist dies die Datei my.cnf im MySQL-Installationsverzeichnis. Wenn Sie diese Zeile auskommentieren, ist das Problem möglicherweise behoben.
quelle
Ich wollte Sie nur über einen ungewöhnlichen Umstand informieren, bei dem ich den gleichen Fehler erhalten habe. Vielleicht hilft das jemandem in der Zukunft.
Ich hatte einige Basisansichten entwickelt, am Entwicklungsstandort erstellt und auf den Produktionsstandort übertragen. Später in dieser Woche änderte ich ein PHP-Skript und plötzlich trat der Fehler auf, dass der Zugriff für den Benutzer 'local-web-user' @ 'localhost' verweigert wurde. Das Datenquellenobjekt hatte sich nicht geändert, daher konzentrierte ich mich auf den Datenbankbenutzer in MySQL und machte mir Sorgen, dass in der Zwischenzeit jemand meine Website gehackt hat. Zum Glück schien der Rest der Seite unversehrt zu sein.
Es stellte sich später heraus, dass die Ansichten die Schuldigen waren. Unsere Objektübertragungen werden mit einem anderen Benutzer (und remote: admin @ ip-address) als dem Benutzer der lokalen Website durchgeführt. Daher wurden die Ansichten mit 'admin' @ 'IP-Adresse' als Definierer erstellt. Die Standardeinstellung für die Erstellung von Ansichten ist SICHERHEIT
Wenn ein lokaler Webbenutzer versucht, die Ansicht zu verwenden, stößt er auf die fehlenden Berechtigungen des Definierers zur Verwendung der Tabellen. Sobald die Sicherheit geändert wurde in:
Das Problem wurde behoben. Das eigentliche Problem war aufgrund der Fehlermeldung völlig anders als erwartet.
quelle
Es ist ein Unterschied zwischen:
und
Prüfen Sie:
Der Befehl
Zugriff implizit auf 'bill' @ 'localhost' und NICHT auf 'bill' @ '%'.
Es gibt keine Berechtigungen für 'bill' @ 'localhost'.
Sie erhalten den Fehler:
Lösung des Problems:
quelle
Dies passiert auch, wenn Ihr Passwort einige Sonderzeichen wie @, $ usw. Enthält. Um diese Situation zu vermeiden, können Sie das Passwort in einfache Anführungszeichen setzen:
Oder verwenden Sie stattdessen kein Passwort bei der Eingabe. Lassen Sie es leer und geben Sie es ein, wenn das Terminal Sie dazu auffordert. Dies ist der empfohlene Weg.
quelle
pwgen
. Heute habe ich eine neue für eine MySQL-Datenbank und deren Benutzer generiert. Leider enthielt das Passwort einen Backslash "\", den ich nicht als Fehlerursprung identifizierte (daran habe ich nicht einmal gedacht). Also suchte ich stundenlang nach einer Lösung. Nachdem das Passwort verzweifelt auf "123" gesetzt wurde, funktionierte die Anmeldung endlich. … Benutzer sollten sich bewusst sein, dass einige Sonderzeichen Probleme verursachen können, da MySQL keine Warnungen bei der Verwendung von Kennwörtern wie beispielsweise "daiy4ha4in7chooshuiphie \ Th * aew" anzeigt.Für mich wurde dieses Problem durch eine neue Funktion von MySQL 5.7.2 verursacht:
user
Einträge werden ignoriert, wenn ihreplugin
Feld leer ist.mysql_native_password
Stellen Sie es zB ein , um sie wieder zu aktivieren:Siehe die Versionshinweise zu MySQL 5.7.2 unter «Authentifizierungshinweise».
Aus irgendeinem Grund (vielleicht weil meine Passwort-Hashes vor 4.1 entfernt wurden), die
mysql_upgrade
Skript keinen Standard-Plugin-Wert festgelegt.Ich fand es heraus, indem ich die folgende Warnmeldung in bemerkte
/var/log/mysql/error.log
:Ich poste diese Antwort hier, um vielleicht jemanden davon abzuhalten, die gleiche lächerliche Zeit dafür zu verwenden wie ich.
quelle
Ich bin mir nicht sicher, ob dies jemand anderes hilfreich finden wird, aber ich bin auf denselben Fehler gestoßen und habe überall nach anonymen Benutzern gesucht ... und es gab keine. Das Problem bestand schließlich darin, dass das Benutzerkonto auf "SSL erforderlich" eingestellt war - was ich in PHPMyAdmin gefunden habe, indem ich zu Benutzerkonten gegangen bin und auf Berechtigungen für den Benutzer bearbeiten geklickt habe. Sobald ich diese Option deaktiviert hatte, funktionierte alles wie erwartet!
quelle
Debugging-Zusammenfassung
Es besteht die große Wahrscheinlichkeit, dass Sie bei Ihrer Arbeit mehrmals auf dieses Problem gestoßen sind. Dieses Problem trat mir meistens aufgrund der falschen Eingabe von Benutzername oder Passwort auf. Obwohl dies einer der Gründe ist, gibt es viele andere Möglichkeiten, dass Sie dieses Problem bekommen. Manchmal sieht es sehr ähnlich aus, aber wenn Sie tiefer graben, werden Sie mehrere Faktoren erkennen, die zu diesem Fehler beitragen. In diesem Beitrag werden die meisten häufigen Gründe ausführlich erläutert und umgangen, um dieses Problem zu beheben.
Mögliche Gründe:
Dies ist der häufigste Grund für diesen Fehler. Wenn Sie den Benutzernamen oder das Passwort falsch eingegeben haben, wird dieser Fehler sicherlich angezeigt.
Lösung:
Die Lösung für diese Art von Fehler ist sehr einfach. Geben Sie einfach den richtigen Benutzernamen und das richtige Passwort ein. Dieser Fehler wird behoben. Falls Sie das Passwort vergessen haben, können Sie den Benutzernamen / das Passwort zurücksetzen. Wenn Sie das Kennwort für das Administrator- / Root-Konto vergessen haben, gibt es viele Möglichkeiten, das Root-Kennwort zurückzusetzen / erneut zu erfassen. Ich werde einen weiteren Beitrag darüber veröffentlichen, wie Sie das Root-Passwort zurücksetzen können, falls Sie das Root-Passwort vergessen.
MySQL bietet als Sicherheitsfunktion eine hostbasierte Einschränkung für den Benutzerzugriff. In unserer Produktionsumgebung haben wir die Zugriffsanforderung nur auf die Anwendungsserver beschränkt. Diese Funktion ist in vielen Produktionsszenarien sehr hilfreich.
Lösung:
Wenn Sie mit dieser Art von Problem konfrontiert sind, überprüfen Sie zunächst, ob Ihr Host zulässig ist oder nicht, indem Sie die Tabelle mysql.user überprüfen. Wenn es nicht definiert ist, können Sie einen neuen Datensatz aktualisieren oder in die Tabelle mysql.user einfügen. Im Allgemeinen ist der Zugriff als Root-Benutzer von einem Remotecomputer aus deaktiviert und aus Sicherheitsgründen keine bewährte Methode. Wenn Sie von mehreren Computern aus auf Ihren Server zugreifen müssen, geben Sie nur Zugriff auf diese Computer. Es ist besser, keine Platzhalter (%) zu verwenden und universelle Zugriffe zu ermöglichen. Lassen Sie mich die Tabelle mysql.user aktualisieren. Jetzt kann der Demouser von jedem Host aus auf den MySQL-Server zugreifen.
Diese Art von Fehler tritt auf, wenn der Benutzer, auf den Sie zugreifen möchten, nicht auf dem MySQL-Server vorhanden ist.
Lösungen:
Wenn Sie auf diese Art von Problem stoßen, überprüfen Sie einfach, ob der Benutzer in der Tabelle mysql.user vorhanden ist oder nicht. Wenn der Datensatz nicht vorhanden ist, kann der Benutzer nicht darauf zugreifen. Wenn für diesen Benutzer Zugriff erforderlich ist, erstellen Sie einen neuen Benutzer mit diesem Benutzernamen.
Wichtige Punkte
Es ist nicht ratsam, beim Definieren des Benutzerhosts Platzhalter zu verwenden. Versuchen Sie, den genauen Hostnamen zu verwenden.
Deaktivieren Sie die Root-Anmeldung vom Remotecomputer.
Verwenden Sie das Proxy-Benutzerkonzept.
Es gibt nur wenige andere Konzepte, die sich auf dieses Thema beziehen, und es ist ein ganz anderer Umfang dieses Artikels, auf Details dieser Themen einzugehen. Wir werden uns in den kommenden Artikeln mit den folgenden verwandten Themen befassen.
Ich hoffe, dieser Beitrag hilft Ihnen dabei, den MySQL-Fehlercode 1045 zu beheben. Zugriff für Benutzer in MySQL verweigert.
quelle
Ich hoffe, Sie haben nicht mehr Schaden angerichtet, indem Sie auch den Benutzer debian-sys-wart in mysql gelöscht haben
Lassen Sie Ihren MySQL-Daemon normal laufen. 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 dieses Passwort ein, wenn Sie dazu aufgefordert werden.http://ubuntuforums.org/showthread.php?t=1836919
quelle
Ich entdeckte einen weiteren Fall, der an der Oberfläche als Randfall erscheint. Ich kann über SELECT INTO .. OUTFILE als root in das Dateisystem exportieren, aber nicht als regulärer Benutzer. Dies ist zwar eine Frage der Berechtigungen, aber ich habe mir das angesehen und sehe nichts besonders offensichtliches. Ich kann nur sagen, dass das Ausführen der Abfrage als normaler Benutzer, der über alle Berechtigungen für die betreffende Datenbank verfügt, den Fehler "Zugriff verweigert" zurückgibt, der mich zu diesem Thema geführt hat. Als ich das Transkript einer erfolgreichen Verwendung von SELECT INTO… OUTFILE in einem alten Projekt fand, bemerkte ich, dass ich als root angemeldet war. Sicher genug, als ich mich als root angemeldet habe, wurde die Abfrage wie erwartet ausgeführt.
quelle
Update: Auf v8.0.15 (möglicherweise diese Version) die
PASSWORD()
funktioniert Funktion nicht.Sie müssen:
sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
quelle
Wenn Sie ausführen
mysql -u bill -p
,localhost
wird in Ihre IP aufgelöst, da es 127.0.0.1 ist und in Ihrer/etc/hosts
Datei als Standard127.0.0.1 localhost
vorhanden ist. MySQL interpretiert Sie also alsbill@localhost
das, was nicht gewährt wirdbill@'%'
. Aus diesem Grund gibt es 2 verschiedene Datensätze für denroot
Benutzer als Ergebnis vonselect host, user from mysql.user;
Abfrage .Es gibt zwei Möglichkeiten, um dieses Problem zu beheben.
Eine davon ist die Angabe einer IP-Adresse, die
/etc/hosts
beim Versuch, sich anzumelden, nicht umgekehrt nach Dateien aufgelöst wird . Zum Beispiel ist die IP des Servers10.0.0.2
. Wenn Sie den Befehl ausführenmysql -u bill -p -h 10.0.0.2
, können Sie sich anmelden. Wenn Sie tippenselect user();
, erhalten Sie[email protected]
. Natürlich sollte kein Domainname in diese IP in Ihrer/etc/hosts
Datei aufgelöst werden.Zweitens müssen Sie für diesen bestimmten Domainnamen Zugriff gewähren. Für
bill@localhost
sollten Sie Befehl aufrufengrant all privileges on *.* to bill@localhost identified by 'billpass';
. In diesem Fall können Sie sich mit dem Befehl anmeldenmysql -u bill -p
. Nach der Anmeldungselect user();
kehrt der Befehl zurückbill@localhost
.Dies ist jedoch nur der Fall, wenn Sie versuchen, einen MySQL-Server auf demselben Host anzumelden. Von Remote-Hosts verhält sich MySQL erwartungsgemäß. Mit '%' können Sie sich anmelden.
quelle
Ich habe dies behoben, indem ich die alten fehlerhaften Benutzer-Rechnungseinträge gelöscht habe (dies ist der wichtige Teil: sowohl aus mysql.user als auch aus mysql.db ) und dann denselben Benutzer wie zuvor traurig erstellt habe:
Arbeitete, Benutzer verbindet. Jetzt werde ich einige Vorrechte daraus entfernen :)
quelle
Ich habe den gleichen Fehler festgestellt. Das Setup, das nicht funktioniert hat, ist wie folgt:
Das bearbeitete Setup unten hat es zum Laufen gebracht. Beachten Sie den Unterschied?
Der Unterschied sind die doppelten Anführungszeichen. Sie scheinen in PHP im Gegensatz zu Java von großer Bedeutung zu sein und wirken sich aus, wenn es darum geht, Zeichen zu maskieren, URLs einzurichten und jetzt Parameter an eine Funktion zu übergeben. Sie sind hübscher (ich weiß), verwenden aber immer so viele einfache Anführungszeichen wie möglich, dann können doppelte Anführungszeichen bei Bedarf in diese verschachtelt werden.
Dieser Fehler trat auf, als ich meine Anwendung auf einer Linux-Box im Gegensatz zu einer Windows-Umgebung testete.
quelle
Ich hatte ähnliche Probleme, weil mein Passwort ";" char bricht mein Passwort, wenn ich es im ersten Moment erstelle. Vorsicht dabei, wenn Ihnen helfen kann.
quelle
Dies mag für sehr wenige Menschen gelten, aber hier geht es weiter. Verwenden Sie kein Ausrufezeichen
!
in Ihrem Passwort.Ich habe den obigen Fehler mit MariaDB gemacht und bekommen. Als ich es auf Zahlen und Buchstaben vereinfachte, funktionierte es. Andere Zeichen wie
@
und$
funktionieren einwandfrei - Ich habe diese Zeichen in einem anderen Benutzer in derselben Instanz verwendet.Die fünfte Antwort an dieser Adresse führte mich zu meinem Fix.
quelle
Unter Windows können Sie Folgendes beheben:
C:\Program Files,C:\Program Files (x86)
undC:\ProgramData
quelle
Dies kann auch passieren, wenn MySQL unter einem Betriebssystem ausgeführt wird, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, z. B. Windows.
Ich habe beispielsweise festgestellt, dass der Versuch, mit diesen Anmeldeinformationen eine Verbindung zu einer Datenbank herzustellen, fehlgeschlagen ist:
mysql>
grant select on databaseV105.* to 'specialuser' identified by 's3curepa5wrd';
$ mysql -specialuser' -p's3curepa5wrd' -h10.61.130.89 databaseV105
Dies gelang jedoch:
mysql>
grant select on databasev105.* to 'specialuser' identified by 's3curepa5wrd';
$ mysql -specialuser' -h10.300.300.400 databaseV105 -p
quelle
Wenn die Länge Ihrer Zeichenfolgen für Datenbankname, Benutzername, Kennwort usw. die unter https://dev.mysql.com/doc/refman/5.7/en/grant-tables.html#grant-tables-scope-column-properties angegebenen Werte überschreitet , haben Sie Möglicherweise können Sie sich auch nicht anmelden, da dies in meinem Fall der Fall war.
quelle
Heutzutage! Lösung für :
Wampserver 3.2.0 Neuinstallation oder Upgrade
Wahrscheinlich ist die
xamp
VerwendungmariaDB
als Standard gut.Wamp
Server kommt mitmariaDB
und MySQL und installiertmariaDB
als Standard auf 3306 Port und MySQL auf 3307, Port manchmal 3308.Verbinden mit
mysql
!Bei der Installation wird gefragt , ob
mariaDB
oder verwendet werdenMySql
soll. Aber mariaDB ist standardmäßig aktiviert und Sie können es nicht ändernmysql
Option und installieren.Wenn die Installation abgeschlossen ist, werden beide
mariaDB
auf dem Standardport 3306 und ausgeführtmysql
auf einem anderen Port 3307 oder 3308 ausgeführt.Klicken
wampserver
Sie mit der rechten Maustaste auf das Symbol, wo es ausgeführt werden soll, in der rechten unteren Ecke, gehen Sie zu den Werkzeugen und sehen Sie, ob es korrekt istmysql
Laufport.Und fügen Sie es wie folgt in Ihre Datenbankverbindung ein:
Note :
Ich benutze pdo.Weitere Informationen finden Sie hier: https://sourceforge.net/projects/wampserver/
quelle