Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Remote-Verbindungen MySQL Ubuntu

Um MySQL irgendetwas anderem als localhost auszusetzen, müssen Sie die folgende Zeile haben

Für MySQL-Version 5.6 und darunter

unkommentiert in /etc/mysql/my.cnf und der IP-Adresse Ihres Computers zugewiesen und kein Loopback

Für MySQL-Version 5.7 und höher

unkommentiert in /etc/mysql/mysql.conf.d/mysqld.cnf und der IP-Adresse Ihres Computers zugewiesen und kein Loopback

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Oder fügen Sie bind-address = 0.0.0.0 hinzu wenn Sie die IP nicht angeben möchten

Beenden Sie dann MySQL und starten Sie es mit dem neuen my.cnf-Eintrag neu. Gehen Sie nach dem Ausführen zum Terminal und geben Sie den folgenden Befehl ein.

lsof -i -P | grep :3306

Das sollte ungefähr so ​​mit Ihrer tatsächlichen IP in den xxx's zurückkommen

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Wenn die obige Anweisung korrekt zurückgegeben wird, können Sie Remote-Benutzer akzeptieren. Damit sich ein Remote-Benutzer jedoch mit den richtigen Berechtigungen verbinden kann, müssen Sie diesen Benutzer sowohl im localhost als auch in '%' wie in erstellt haben.

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

dann

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

und schließlich

FLUSH PRIVILEGES; 
EXIT;

Wenn Sie nicht denselben Benutzer wie oben erstellt haben, erben Sie bei der lokalen Anmeldung möglicherweise die Basisberechtigungen für localhost und haben Zugriffsprobleme. Wenn Sie den Zugriff von myuser einschränken möchten, müssen Sie sich über die GRANT-Anweisungssyntax HIER Wenn Sie das alles durchstehen und immer noch Probleme haben, posten Sie einige zusätzliche Fehlerausgaben und die entsprechenden my.cnf-Zeilen.

HINWEIS:Wenn lsof nicht zurückkehrt oder nicht gefunden wird, können Sie es HIER installieren basierend auf Ihrer Linux-Distribution. Sie brauchen lsof nicht, damit die Dinge funktionieren, aber es ist äußerst praktisch, wenn die Dinge nicht wie erwartet funktionieren.

UPDATE:Wenn auch nach Hinzufügen/Ändern der bind-address in my.cnf nicht funktioniert hat, dann gehen Sie und ändern Sie es an der Stelle, an der es ursprünglich deklariert wurde:

/etc/mysql/mariadb.conf.d/50-server.cnf