Wenn ich SHOW GRANTS
in meiner MySQL-Datenbank mache, bekomme ich
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
IDENTIFIED BY PASSWORD 'some_characters'
WITH GRANT OPTION
Wenn ich mich nicht irre, root@localhost
bedeutet dies, dass der Benutzer root
nur von auf den Server zugreifen kann localhost
. Wie kann ich MySQL anweisen, root
die Berechtigung zum Zugriff auf diesen MySQL- Server auch von jedem anderen Computer (im selben Netzwerk) zu erteilen ?
mysql
connection
grant
Aufwind
quelle
quelle
localhost
von%
wird der Root-Zugriff auf das öffentliche Netzwerk gewährt. Vergessen Sie nichtflush privileges;
Antworten:
Dies gewährt Root-Zugriff mit demselben Kennwort von jedem Computer in
*.example.com
:Wenn die Namensauflösung nicht funktioniert, können Sie den Zugriff auch über IP oder Subnetz gewähren:
MySQL-
GRANT
Syntaxdokumente.quelle
...TO 'root'@'%' IDENTIFIED...
würde Zugriff von überall gewähren?SHOW GRANTS
zeigt aber immer noch dasselbe (wie in meiner Frage). Ich habe es sogar getanFLUSH PRIVILGES
. Gibt es etwas, das ich vermisse?FLUSH PRIVILEGES
. Melden Sie sich ab und wieder an, und starten Sie den mysqld-Dienst neu, wenn Sie Zugriff haben. Stellen Sie außerdem sicher, dass dieskip networking
Leitung in Ihrem nicht aktiviert ist,my.cnf
obwohl dies nicht dazu führen würde, dass SieSHOW GRANTS
immer noch nicht identisch sind.IDENTIFIED BY PASSWORD
von einer 41-stelligen hexadezimalen Hash-Zahl begleitet wird. VerwendenIDENTIFIED BY 'password'
Sie diese Option, wenn Sie das Kennwort direkt eingeben möchten.Versuchen:
quelle
Pa55w0rd
dumm erscheint, sag mir nicht, dass das das Passwort ist, das du machen willst. Für alle, die versuchen, sich bei MySQL anzumelden?FLUSH PRIVILEGES;
Sie müssen einige Schritte ausführen, um sicherzustellen, dass zuerst MySQL und dann Root-Benutzer von außen zugänglich sind:
Disable
skip-networking
inmy.cnf
(dh/etc/mysql/my.cnf
)Überprüfen Sie den Wert von
bind-address
inmy.cnf
. Wenn dieser Wert auf gesetzt ist,127.0.0.1
können Sie ihn so ändern0.0.0.0
, dass der Zugriff von allen IP-Adressen oder von jeder IP-Adresse aus möglich ist, von der aus Sie eine Verbindung herstellen möchten.Gewähren Sie dem Root-Benutzer Remotezugriff von einer beliebigen IP-Adresse (oder geben Sie Ihre IP-Adresse anstelle von an
%
).Starten Sie den MySQL-Dienst neu:
quelle
*.* = DB.TABLE
Sie können den Benutzer auf eine bestimmte Datenbank und eine bestimmte Tabelle beschränken.'root'@'%'
Sie können root mit jedem Benutzer ändern, den Sie erstellt haben, und% soll alle IP-Adressen zulassen. Sie können es einschränken, indem Sie auch% .168.1.1 usw. ändern.Wenn sich das nicht beheben lässt, ändern Sie auch my.cnf oder my.ini und kommentieren Sie diese Zeilen
bind-address = 127.0.0.1
zu#bind-address = 127.0.0.1
und
skip-networking
zu#skip-networking
Raspberry Pi, ich fand Bindungsadressenkonfiguration unter
\etc\mysql\mariadb.conf.d\50-server.cnf
quelle
*.*
und erklärt'user'@'address'
. Vielen Dank! :)Diese SQL-Zuschüsse, die die anderen gemeinsam nutzen, funktionieren. Wenn Sie immer noch nicht auf die Datenbank zugreifen können, haben Sie möglicherweise nur eine Firewall-Einschränkung für den Port. Es hängt von Ihrem Servertyp (und allen dazwischen liegenden Routern) ab, wie die Verbindung hergestellt wird. Öffnen Sie den eingehenden TCP-Port 3306 und geben Sie ihm eine ähnliche Zugriffsregel für externe Computer (alle / Subnetz / einzelne IP / etc.).
quelle
Öffnen Sie die
/etc/mysql/mysql.conf.d/mysqld.cnf
Datei und kommentieren Sie die folgende Zeile:quelle
In meinem Fall habe ich versucht, eine Verbindung zu einem Remote-MySQL-Server unter Cent OS herzustellen. Nach vielen Lösungen (Gewähren aller Berechtigungen, Entfernen von IP-Bindungen, Aktivieren des Netzwerks) wurde das Problem immer noch nicht gelöst.
Wie sich herausstellte, stieß ich bei der Suche nach verschiedenen Lösungen auf iptables, wodurch mir klar wurde, dass der MySQL-Port 3306 keine Verbindungen akzeptierte.
Hier ist ein kleiner Hinweis, wie ich dieses Problem überprüft und behoben habe.
- Hinzufügen einer IP-Tabellenregel, um Verbindungen am Port zuzulassen:
-Würde dies nicht für die Produktionsumgebung empfehlen, aber wenn Ihre iptables nicht richtig konfiguriert sind, kann das Problem durch Hinzufügen der Regeln möglicherweise noch nicht behoben werden. In diesem Fall sollte Folgendes getan werden:
Hoffe das hilft.
quelle
Zwei schritte:
Benutzer mit Platzhalter einrichten:
create user 'root'@'%' identified by 'some_characters'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'some_characters' WITH GRANT OPTION
vim /etc/my.cnf
Fügen Sie Folgendes hinzu:
bind-address=0.0.0.0
Starten Sie den Server neu, Sie sollten keine Probleme haben, eine Verbindung zu ihm herzustellen.
quelle
Mit MySQL 8 und einer höheren Version können Sie keinen Benutzer hinzufügen, indem Sie Berechtigungen erteilen. es bedeutet mit dieser Abfrage:
mysql gibt diesen Fehler zurück:
Dies bedeutet, dass Sie keinen Root-Benutzer für% domain haben. Sie müssen also zuerst den Benutzer einfügen und dann folgende Berechtigungen erteilen:
Vergessen Sie nicht, Passwörter durch Ihre spezifischen Passwörter zu ersetzen.
quelle
Das hat bei mir funktioniert. Aber es gab ein seltsames Problem, das selbst ich zuerst versuchte, diejenigen, die es nicht betraf. Ich habe die phpmyadmin-Seite aktualisiert und sie irgendwie zum Laufen gebracht.
Wenn Sie Zugriff auf local-xampp-mysql benötigen. Sie können zu xampp-shell -> öffnende Eingabeaufforderung gehen.
Dann mysql -uroot -p --port = 3306 oder mysql -uroot -p (wenn ein Passwort festgelegt ist). Danach können Sie diesen Zugriff von der MySQL-Shell-Seite aus gewähren (kann auch von localhost / phpmyadmin aus funktionieren).
Fügen Sie diese einfach hinzu, wenn jemand dieses Thema findet und Anfängerprobleme hat.
quelle
Ubuntu 18.04
Installiere und stelle sicher, dass mysqld uns läuft.
Gehen Sie in die Datenbank und richten Sie den Root-Benutzer ein:
Bearbeiten Sie die mysqld-Berechtigungen und starten Sie neu:
Testen Sie von einem anderen Computer aus. Der obvs-Port (3306) auf dem mysqld-Computer muss die Verbindung vom Testcomputer zulassen.
Die zusätzliche "Sicherheit" von MySql hilft der Sicherheit überhaupt nicht, sie kompliziert und verschleiert sie nur, es ist jetzt tatsächlich einfacher, sie zu vermasseln als früher, als Sie nur ein wirklich langes Passwort verwendet haben.
quelle