2017-05-12 6 views
0

Ich versuche, ein Test-PHP-Projekt auf Google App Engine flexible Umgebung zu implementieren.Kann keine Verbindung zu Cloud-Sql-Instanz von Google App-Engine flexible Umgebung PHP-Projekt

sieht mein app.yaml wie folgt aus:

*

runtime: php 
env: flex 
service: testphpflex 
manual_scaling: 
    instances: 1 
#[START cloudsql_settings] 
# Use the connection name obtained when configuring your Cloud SQL instance. 
beta_settings: 
    cloud_sql_instances: "my-first-project:us-central1:tempdb" 
#[END cloudsql_settings] 

*

Die composer.json sieht wie folgt aus:

{ 
    "require": { 
     "silex/silex": "^1.3", 
     "php": "5.6.*", 
     "google/apiclient": "^2.0" 

    }, 
    "require-dev": { 
     "google/cloud-tools": "^0.6", 
     "paragonie/random_compat": "^2.0", 
     "phpunit/phpunit": "~4" 
    } 
} 

Und mein Beispielcode aussieht dies:

<?php 
$conn = mysql_connect('unix_socket:/cloudsql/my-first-project:us-central1:tempdb', 
     'username', 
     'password' 
    ); 

    echo "<br><br/>connection done"; 
if(!$conn) 
{ 
die('Connection Failed'.mysql_error()); 
} 
else 
{ 
die('Connection successful'); 
} 

?> 

Ich kann jedoch keine Verbindung herstellen. Was ist falsch?

Antwort

0

Google Cloud-Support sagt mir, dass mysql_connect veraltet. Es ist in PHP seit 5.5 veraltet und daher gibt es keine Unterstützung dafür. Also wird das obige nicht unterstützt.

0

Meine Hypothese ist, dass die Google Cloud SQL API nicht aktiviert ist.

Gehen Sie zum folgenden Link und sehen Sie, ob es aktiviert ist. Aktivieren Sie es, wenn nicht.

https://console.cloud.google.com/apis/api/sqladmin.googleapis.com/overview?project=_

Dann versuchen Sie erneut die Bereitstellung der App (leider müssen Sie es wieder einsetzen). Wenn dies der Fall ist, ist es ein dup von Connecting to 2nd gen Cloud SQL on App Engine flexible PHP 7.0 - missing socket

+0

Die APIs sind aktiviert. Ich benutze die gleiche Cloud-SQL-Instanz in anderen Java-basierten App-Engine-Projekten und da habe ich keine Probleme. –

+0

Wann ist es passiert? Wir hatten diese Woche ein Problem mit cloud sql proxy, aber jetzt ist es behoben. Die erneute Bereitstellung könnte es lösen. –

+0

Kein Glück. Immer noch den gleichen Fehler - Keine solche Datei oder Verzeichnis –

0

Ich glaube, ich verstehe, warum Sie den Fehler bekommen.

sollten Sie verwenden:

mysql_connect(':/cloudsql/my-first-project:us-central1:tempdb', 

oder

mysql_connect('localhost:/cloudsql/my-first-project:us-central1:tempdb', 

Laut Handbuch http://php.net/manual/en/function.mysql-connect.php

+0

Google Cloud Support teilt mir mit, dass mysql_connect veraltet ist. Es ist in PHP seit 5.5 veraltet und daher gibt es keine Unterstützung dafür. Wir haben uns schließlich dazu entschlossen, auf PDOs umzusteigen. Vielen dank für Deine Hilfe. –

+0

In Ordnung, können Sie diese Frage als gelöst oder geschlossen markieren? –

+0

nach der Konvertierung in PDO, funktioniert es. ? Ich habe das gleiche Problem? – Subash

Verwandte Themen