Ich habe MySQL Community Edition 5.5 auf meinem lokalen Computer installiert und möchte Remoteverbindungen zulassen, damit ich eine Verbindung von einer externen Quelle herstellen kann.
Wie kann ich das machen?
mysql
mysql-workbench
Löwe
quelle
quelle
sudo mysql_secure_installation
. Zu Ihrer Information.Antworten:
Dies ist unter MySQL standardmäßig zulässig.
Standardmäßig ist der Fernzugriff deaktiviert
root
. Wenn Sie dies aktivieren möchten, führen Sie diesen SQL-Befehl lokal aus:Und dann finden Sie die folgende Zeile und kommentieren Sie sie in Ihrem
my.cnf
Datei aus, die normalerweise/etc/mysql/my.cnf
auf Unix / OSX-Systemen verwendet wird. In einigen Fällen lautet der Speicherort für die Datei /etc/mysql/mysql.conf.d/mysqld.cnf).Wenn es sich um ein Windows-System handelt, finden Sie es im MySQL-Installationsverzeichnis, normalerweise so ähnlich
C:\Program Files\MySQL\MySQL Server 5.5\
wie der Dateinamemy.ini
.Zeile ändern
zu
Starten Sie den MySQL-Server ( Unix / OSX und Windows ) neu, damit die Änderungen wirksam werden.
quelle
my.cnf
Datei suchen und keinebind-address
Direktive darin finden, ist zu beachten, dass in meinem Fall (MySQL Version 14.14 unter Ubuntu 16.04.2) der Speicherort für die Datei war/etc/mysql/mysql.conf.d/mysqld.cnf
Nachdem ich alle oben genannten
root
Schritte ausgeführt hatte, konnte ich mich immer noch nicht so remote anmelden , aber Telnetting to Port3306
bestätigte, dassMySQL
Verbindungen akzeptiert wurden.Ich fing an, die Benutzer in MySQL zu untersuchen und bemerkte, dass es mehrere Root-Benutzer mit unterschiedlichen Passwörtern gab.
Also habe
MySQL
ich alle Passwörter für root wieder gesetzt und konnte mich endlich remote als anmeldenroot
.quelle
update user set authentication_string=password('YOUR_PASSWORD') where user='root';
Nur eine Anmerkung aus meiner Erfahrung, finden Sie Konfigurationsdatei unter diesem Pfad
/etc/mysql/mysql.conf.d/mysqld.cnf
.(Ich hatte einige Zeit Mühe, diesen Weg zu finden)
quelle
sudo find /etc -iname 'mysql*.cnf'
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.
Hoffe das hilft.
quelle
Führen Sie die folgenden Schritte aus, um den Platzhalter-Remotezugriff für MySQL User festzulegen.
quelle
Wenn Ihr MySQL-Serverprozess nur 127.0.0.1 oder :: 1 abhört, können Sie keine Remoteverbindung herstellen. Wenn Sie eine
bind-address
Einstellung in haben/etc/my.cnf
haben, kann dies die Ursache des Problems sein.Sie müssen auch Berechtigungen für einen Nichtbenutzer hinzufügen
localhost
.quelle
127.0.0.1
?Wenn Sie MySQL von dort installiert haben,
brew
lauscht es standardmäßig nur auf der lokalen Schnittstelle. Um dies zu beheben , die Sie bearbeiten müssen ,/usr/local/etc/my.cnf
und ändern Sie dasbind-address
von127.0.0.1
zu*
.Dann renne
brew services restart mysql
.quelle
Alle Prozesse für die Remote-Anmeldung. Die Remote-Anmeldung ist standardmäßig deaktiviert. Sie müssen sie manuell für alle IP-Adressen öffnen, um Zugriff auf alle IP-Adressen zu erhalten
Spezifische Ip
dann
Sie können Ihren Benutzer Host & Passwort überprüfen
Jetzt ist es Ihre Pflicht, dies zu ändern
Sie finden dies auf
Wenn Sie dies dort nicht finden, versuchen Sie es
Kommentar in diesem
Starten Sie dann MySQL neu
Nun viel Spaß beim Remote-Login
quelle
Nur zu Ihrer Information Ich habe mir stundenlang die Haare aus diesem Problem gezogen. Schließlich habe ich meinen Hosting-Anbieter angerufen und festgestellt, dass in meinem Fall über einen Cloud-Server, der in der Systemsteuerung für 1 und 1 eine sekundäre Firewall hat, die Sie klonen und einen Port hinzufügen müssen 3306. Einmal hinzugefügt, bin ich direkt reingekommen.
quelle
Überprüfen Sie, für wen es benötigt wird, ob der Firewall-Port 3306 ebenfalls geöffnet ist, wenn Ihr Firewall-Dienst ausgeführt wird.
quelle
Dieser Blog Wie Sie einen MySQL-Server im lokalen Netzwerk einrichten, ist hilfreich, um einen
MySQL
von Grund auf neu einzurichtenquelle
Und für OS X-Benutzer ist zu beachten, dass der Parameter bind-address normalerweise in der launchd-Liste und nicht in der Datei my.ini festgelegt ist. Also in meinem Fall entfernte ich mich
<string>--bind-address=127.0.0.1</string>
von/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.quelle
~/Library/LaunchAgents
Wenn
mysqld
eine Bindungsadresse auf eine Loopback- / lokale Adresse festgelegt ist (z. B.127.0.0.1
), ist der Server von Remote-Hosts nicht erreichbar, da eine Loopback-Schnittstelle von keinem Remote-Host aus erreichbar ist.Setzen Sie diese Option auf
0.0.0.0
(::
für IPv4 + 6), um Verbindungen von einem beliebigen Host zu akzeptieren, oder auf eine andere extern erreichbare Adresse, wenn Sie nur Verbindungen auf einer Schnittstelle zulassen möchten.Quelle
quelle
Manchmal muss der Name des PCs unter Windows verwendet werden
erster Schritt) in Konfigurationsdatei von MySQL setzen:
(um Verbindungen über TCP / IP aufnehmen zu können)
zweiter Schritt) Benutzer in MySQL machen, Tabellenbenutzer, mit dem Namen des PCs auf Windows- Eigenschaften, nicht IP
quelle
Das Aktivieren des Remote-Root-Zugriffs kann gefährlich sein. Es wäre vorzuziehen, wenn Sie Benutzerkonten mit restriktiveren Berechtigungen einrichten würden. Die folgenden drei Schritte sollten dies tun.
Stellen Sie sicher, dass die Zeile, die mit beginnt,
bind-address ...
mindestens in Ihrer Datei my.ini oder my.cnf auskommentiert ist. Wenn es nicht existiert, fahren Sie fort. Sie finden diese DateiC:\ProgramData\MySQL\MySQL Server 8.0
unter Windows.Überprüfen Sie anschließend, ob das Benutzerkonto, mit dem Sie die Verbindung herstellen,
localhost
im Feld "Auf Hosts beschränken" nicht vorhanden ist. Obwohl dies nicht empfohlen wird, können Sie%
dieses Feld stattdessen zu Testzwecken eingeben. Sie können dies tun, indem Sie mit MySQL Workbench eine lokale Verbindung zum Server herstellen, dann in der Menüleiste zu Server> Benutzer und Berechtigungen gehen und das Benutzerkonto suchen, mit dem Sie eine Verbindung herstellen möchten.Das Feld "Limit to Hosts Matching" verhindert, dass Sie eine nicht lokale Verbindung herstellen. Das heißt, es begrenzt die akzeptierten Verbindungen auf ein Muster von IP-Adressen. Idealerweise sollten Sie über eine statische IP-Adresse oder ein statisches Subnetz auf den MySQL-Server zugreifen, damit Sie so restriktiv wie möglich sind.
quelle