Ich habe einen neuen Ubuntu
Server v18 erstellt Microsoft Azure
. Ich habe eine eingehende Regel erstellt, um zuzulassen,port 3306
Ich rannteupdates and upgrades
Ich tatsudo apt install mysql-server
Ich habe überprüft, ob es mit folgendem läuft:
sudo service mysql status
Und jetzt versuche ich, eine Verbindung herzustellen, MySQL Workbench
aber ich kann keine Verbindung herstellen, wenn ich auf die test connection
Schaltfläche klicke.
Was vermisse ich sonst noch?
Antwort1
Um MySQL einem anderen Host als dem lokalen Host zugänglich zu machen, benötigen Sie die folgende Zeile
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
Ersetzen Sie xxx durch Ihre IP-Adresse
bind-address = xxx.xxx.xxx.xxx
Oder fügen Sie ein hinzu, bind-address = 0.0.0.0
wenn Sie die IP nicht angeben möchten.
Stoppen und starten Sie MySQL dann mit dem neuen my.cnf-Eintrag neu. Sobald MySQL läuft, gehen Sie zum Terminal und geben Sie den folgenden Befehl ein.
lsof -i -P | grep :3306
Das Ergebnis sollte ungefähr so aussehen, mit Ihrer tatsächlichen IP in den xxx's
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, muss dieser Benutzer sowohl im lokalen Host als auch in „%“ erstellt sein.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
then,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
und schlussendlich,
FLUSH PRIVILEGES;
EXIT;
Dann können Sie eine Verbindung zu Ihrem MySQL herstellen.
Hoffe, das hilft Ihnen.