Ich möchte eine Verbindung von meiner GAE-App zu meiner Google Cloud MySQL-Instanz herstellen. Ich verwende den github.com/go-sql-driver/mysql
Treiber und ich befolgte die in tutorial angegebenen Schritte. Anscheinend kann ich mich mit der Datenbank ohne einen Fehler verbinden, aber wenn ich eine Anfrage machen möchte, bekomme ich driver: bad connection
und packets.go:33: unexpected EOF
. Ich habe sowohl meine lokale IP-Adresse als auch die GAE-App autorisiert, um auf meine Datenbank zuzugreifen, und ich kann mich problemlos von meinem lokalen Rechner und dem MySQL-Client aus verbinden. Ich habe bereits versucht, meine App in der Standardumgebung einzurichten und folgte dem Ratschlag here, aber es hat auch nicht funktioniert.Verbinden Sie Google App Engine mit Google Cloud Storage in einer flexiblen Umgebung.
, dass meine Go-Code ist, mit dem ich eine Verbindung zur Datenbank:
host := os.Getenv("DB_HOST")
user := os.Getenv("DB_USER")
pwd := os.Getenv("DB_PWD")
connectionInfo := fmt.Sprintf("%v:%[email protected](%v:3306)/mobile_data?parseTime=true", user, pwd, host)
db, err := sql.Open("mysql", connectionInfo)
Und das ist meine app.yaml Datei:
runtime: go
vm: true
env_variables:
"DB_HOST": "[Google Cloud MySQL Instance IPv4]"
"DB_USER": "[User]"
"DB_PWD": "[Password]"
Jede Spitze oder Beratung ist sehr zu schätzen!
Verbinden Sie sich mit der Cloud-SQL-Instanz der ersten Generation oder der zweiten Generation? Wenn es sich um eine zweite Generation handelt, sollten Sie den Cloud-SQL-Proxy verwenden: https://cloud.google.com/sql/docs/access-control#instanceaccess – Tianzhou
Ich habe mich mit der Instanz der ersten Generation verbunden. In dem Link, den du mir schickst, geben sie an, dass der Zugriff von der flexiblen Umgebung der App-Engine auf eine Instanz der ersten Generation nicht unterstützt wird. Danke für den Link! – treigerm