433 Stimmen

MySQL: Wie ermögliche ich eine Remote-Verbindung zu MySQL

Ich habe MySQL Community Edition 5.5 auf meinem lokalen Rechner installiert und möchte Remote-Verbindungen zulassen, damit ich mich von externen Quellen aus verbinden kann.

Wie kann ich das machen?

873voto

mjuarez Punkte 15429

Dies ist standardmäßig auf MySQL erlaubt.

Was standardmäßig deaktiviert ist, ist der entfernte root-Zugriff. Wenn Sie das aktivieren möchten, führen Sie diesen SQL-Befehl lokal aus:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

Suchen Sie dann die folgende Zeile und kommentieren Sie sie aus in Ihrer my.cnf-Datei, die normalerweise auf Unix/OSX-Systemen in /etc/mysql/my.cnf zu finden ist (In einigen Fällen befindet sich die Datei unter /etc/mysql/mysql.conf.d/mysqld.cnf).

Auf einem Windows-System finden Sie sie im MySQL-Installationsverzeichnis, normalerweise etwas wie C:\Program Files\MySQL\MySQL Server 5.5\ und die Datei heißt my.ini.

Ändern Sie die Zeile

 bind-address = 127.0.0.1

zu

 #bind-address = 127.0.0.1

Und starten Sie den MySQL-Server neu (Unix/OSX und Windows), damit die Änderungen wirksam werden.

56voto

Matthew Lock Punkte 12498

Nachdem ich all das oben Genannte getan hatte, konnte ich mich immer noch nicht als root remote anmelden, aber das Telnetten zum Port 3306 bestätigte, dass MySQL Verbindungen akzeptierte.

Ich begann, mir die Benutzer in MySQL anzusehen, und stellte fest, dass es mehrere root-Benutzer mit unterschiedlichen Passwörtern gab.

select user, host, password from mysql.user;

Also habe ich in MySQL alle Passwörter für root erneut festgelegt und konnte mich schließlich remote als root anmelden.

use mysql;
update user set password=PASSWORD('NEUESPASSWORT') where User='root';
flush privileges;

47voto

Mayur Patel Punkte 739

Nur eine Notiz aus meiner Erfahrung, Sie können die Konfigurationsdatei unter diesem Pfad /etc/mysql/mysql.conf.d/mysqld.cnf finden.

(Ich habe eine Weile gebraucht, um diesen Pfad zu finden)

33voto

Kushal Punkte 403

In meinem Fall versuchte ich, mich mit einem entfernten mysql-Server unter Cent OS zu verbinden. Nachdem ich viele Lösungen ausprobiert hatte (alle Berechtigungen gewähren, IP-Bindungen entfernen, Netzwerkaktivierung), wurde das Problem immer noch nicht gelöst.

Wie sich herausstellte, stieß ich beim Durchsuchen verschiedener Lösungen auf iptables, was mich erkennen ließ, dass der MySQL-Port 3306 keine Verbindungen akzeptierte.

Hier ist eine kurze Notiz dazu, wie ich dieses Problem überprüft und gelöst habe.

  • Überprüfen, ob der Port Verbindungen akzeptiert:

    telnet (mysql server ip) [portNo]

  • IP-Tabellenregel hinzufügen, um Verbindungen auf dem Port zuzulassen:

    iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

  • Ich würde dies nicht für eine Produktionsumgebung empfehlen, aber wenn Ihre iptables nicht ordnungsgemäß konfiguriert sind, lösen das Hinzufügen der Regeln möglicherweise das Problem immer noch nicht. In diesem Fall sollte Folgendes durchgeführt werden:

    service iptables stop

Hoffe, das hilft.

27voto

albus_severus Punkte 3568

Alle Prozesse für die Remote-Anmeldung. Die Remote-Anmeldung ist standardmäßig deaktiviert. Sie müssen sie manuell für alle IPs öffnen, um allen IPs Zugriff zu gewähren

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Passwort';

Bestimmte IP

GRANT ALL PRIVILEGES ON *.* TO 'root'@'deine_gewünschte_ip' IDENTIFIED BY 'Passwort';

dann

flush privileges;

Sie können Ihren Benutzerhost und Ihr Passwort überprüfen

SELECT host, user, authentication_string FROM mysql.user;

Nun ist es Ihre Aufgabe, dies zu ändern

bind-adresse = 127.0.0.1

Sie finden dies unter

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Wenn Sie es dort nicht finden, versuchen Sie es damit

sudo nano /etc/mysql/my.cnf

Kommentieren Sie dies aus

#bind-adresse = 127.0.0.1

Dann starten Sie Mysql neu

sudo service mysql restart

Genießen Sie nun die Remote-Anmeldung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X