2017-05-14 12 views
3

私はappengineからcloudsqlに接続するのに過去2日間試していますが、IP経由でLinux Webサーバーから接続できますが、同じエンジンではできませんセットアップ。アプリケーションエンジンからgoogle cloudsqlに接続できません

次のように私の接続文字列は次のとおりです。 実際のAPPIDがphpfile

$dsn = getenv('MYSQL_DSN'); 
$user = getenv('MYSQL_USER'); 
$password = getenv('MYSQL_PASSWORD'); 
if (!isset($dsn, $user) || false === $password) { 
    throw new Exception('Set MYSQL_DSN, MYSQL_USER, and MYSQL_PASSWORD environment variables'); 
} 
$conn = new PDO($dsn, $user, $password); 

でapp.yamlを

env_variables: 
    MYSQL_DSN: mysql:unix_socket=/cloudsql/appid:us-central1:sql-instance-1;dbname=dbname 
    MYSQL_USER: root 
    MYSQL_PASSWORD: '' 

のdbname

だけでなく、交換された注意してください。上記の値はhttps://cloud.google.com/appengine/docs/standard/php/cloud-sql/ から取得しました。パスワードを使用せずにパスワードを使用しようとしました。私はパスワードとユーザ名なしのユーザ名として、ユーザ名のルートを試しました。

ショートエラー

SQLSTATE[HY000] [2002] No such file or directory 

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /app/dbconn.php:12 Stack trace: #0 /app/dbconn.php(12): PDO->__construct('mysql:unix_sock...', 'root', '') #1 /app/api.user.php(2): include_once('/app/dbconn.php') #2 {main} thrown in /app/dbconn.php on line 12 

が、私は本当に午前フル・エラー:私は第二世代のセットアップ、およびフレックスPHP環境を使用しています

、私が受信し続けるエラーは以下のとおりです。今すぐアイデアから抜け出すsqlとappの両方が同じプロジェクトにあることに注意してください。

+0

問題を解決できますか?私は同じものを手に入れている。 –

+0

@IlkerBaltaci私は決して解決策を見いださず、VM/Computeエンジンを使いました。 – Shaun

答えて

3

インスタンスのSSHを実行すると(これがデバッグモードになります)、ソケットファイルの存在を確認できます。クラウドコンソールから接続を開くことができます。

その後、

ls /cloudsql 

このディレクトリはMYSQL_DSN環境変数以下、<project-id>:<region>:<instance-name>という項目が含まれている必要があります。

これがない場合は、に関連するAPIが有効になっていることを確認してください。ドキュメントページUsing Cloud SQLで、「はじめに」 - 具体的には「APIを有効にする」の手順に従ってください。 (あなたのログには、「アクセスが設定されていません。クラウドSQL管理APIは、以前にプロジェクトで使用されていなかったか、無効になっています」というメッセージが表示されることがあります。を再配布する前にAPIを有効にしてから、

あなたはすでにこれを行っているかもしれませんが、私の経験では見逃しやすいステップです。また

をapp.yamlファイルに次のものが含まれていることを確認します:

beta_settings: 
    cloud_sql_instances: "<project-id>:<region>:<instance-name>" 

最後には、引用符にapp.yamlをファイルにMYSQL_DSNの値を入れてみてください。

+0

ありがとうございました。私はls/cloudsqlに次の結果を試しました:ls:/ cloudsqlにアクセスできない:そのようなファイルやディレクトリはありません。最後に、ソリューションを見つけることができなかったため、計算エンジンを使用しました。 – Shaun

+2

別の可能性を含めるために私の答えを更新しました。 'beta_settings'値が正しく設定されていることを確認してください。 – nicoqh

+0

これもうまくいきません – Subash

関連する問題