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