Stellen Sie von App Engine und extern eine Verbindung zu MySQL auf Google Compute Engine her

Stellen Sie von App Engine und extern eine Verbindung zu MySQL auf Google Compute Engine her

Ich habe erfolgreich eine Compute Engine-VM-Instanz erstellt und MySQL mithilfe dieser Anleitung darauf installiert: https://cloud.google.com/solutions/setup-mysql

Jetzt möchte ich mich von der App Engine und wenn möglich auch von zu Hause aus damit verbinden. Mit dieser Anleitung:https://cloud.google.com/appengine/docs/standard/python/connecting-vpc Ich habe den Connector erstellt und ihm die vorgeschlagene IP-Adresse 10.8.0.0/28 zugewiesen.

In die Datei app.yaml meiner App Engine habe ich Folgendes eingefügt: vpc_access_connector: Name: projects/locationconnection/locations/europe-west3/connectors/vpcaccess

Die VM-Instanz zeigt eine interne IP von 10.156.0.2 und eine externe IP von 34.89.141.17

Ich versuche, mit dieser Zeile eine Verbindung von PHP aus herzustellen: new mysqli($servername, $username, $password, $dbname, 3306, null);, aber ich erhalte unterschiedliche Fehlermeldungen.

Bei der Verbindung zu 34.89.141.17 von meinem Heimcomputer aus: mysqli::__construct(): (HY000/2002): Es konnte keine Verbindung hergestellt werden, da der Zielcomputer sie aktiv abgelehnt hat. (Ich habe sogar eine Firewall-Regel erstellt, um den gesamten Datenverkehr von meiner Heim-IP zuzulassen.)

Beim Herstellen einer Verbindung zu 10.8.0.0 von der App-Engine aus: 2002: Zeitüberschreitung der Verbindung

Beim Herstellen einer Verbindung zu 10.156.0.2 von der App-Engine aus: 2002: Verbindung abgelehnt

Wie kann ich eine Verbindung herstellen?

Antwort1

Auf dem FührerSo richten Sie MySQL auf Google Compute Engine einzeigt, wie man Mysql einrichtet, aber denken Sie daran, dass Mysql seine eigene Konfiguration hat. Bei den Fehlern, die Sie erwähnt haben, geht es darum, dass Mysql externe Verbindungen zulässt. Wenn Sie einen Benutzer hinzufügen und ihm Berechtigungen erteilen (oder bei vorhandenen Benutzern), müssen Sie den Host oder Netzwerkbereich angeben, von dem aus dieser Benutzer eine Verbindung herstellen darf. Beispielsweise GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; erteilt diese Zeile dem Root-Benutzer alle Berechtigungen und lässt Verbindungen des Root-Benutzers von allen Hosts aus zu (das „%“ nach dem @ ist ein Platzhalter, der bedeutet, von allen Hosts aus). Sie können den Platzhalter wie folgt für ein privates Netzwerk verwenden. 10.156.0.%Der Host beantragt öffentliche IPs oder IPs aus Ihrem privaten Netzwerk. Weitere Informationen finden Sie auf dieser Site.So lassen Sie Remoteverbindungen zu MySQL zu. Bedenken Sie das Sicherheitsrisiko einer weit offenen Allow-Host-Richtlinie.

verwandte Informationen