0

私はFlaskを使用して簡単なウェブサイトを設計しましたが、私の目標はGoogle App Engineにデプロイすることでした。私はそれをローカルで作業し始め、データベース用にGoogle Cloud SQLを使用しました。 google_cloud_proxyを使用してポート3306を開き、GC SQLインスタンスとやりとりし、ローカルで正常に動作します...これは私のアプリケーションをGCに接続する方法です。SQL:Googleのクラウドに接続する際の内部エラーSQL

私はapp.yamlファイルを持っています

env_variables: 
    CLOUDSQL_SERVER = '127.0.0.1' 
    CLOUDSQL_CONNECTION_NAME = "myProjectName:us-central1:project"` 
    CLOUDSQL_USER = "user" 
    CLOUDSQL_PASSWORD = "myPassword" 
    CLOUDSQL_PORT = 3306 
    CLOUDSQL_DATABASE = "database" 

と私は私のローカルマシンから:

db = MySQLdb.connect(CLOUDSQL_SERVER,CLOUDSQL_USER,CLOUDSQL_PASSWORD,CLOUDSQL_DATABASE,CLOUDSQL_PORT) 

と私はApp Engineの上に接続された取得したい場合、私は:

「その中に私のグローバル変数を定義しまし210

ウェブサイトの静的部分が実行されていますが、たとえば、GC SQLに保存されているユーザー名とパスワードでログインしたい場合は、内部エラーが発生します。

私は計算エンジンを起動し、config.pyにグローバル変数を定義し、フラスコ、mysqldb、アプリケーションの起動に必要なものをすべて定義しました。私はまた、計算エンジンでcloud_sql_proxyを使用して、私はGC SQLインスタンスに接続するには、この構文を試してみました:

db = MySQLdb.connect(CLOUDSQL_SERVER,CLOUDSQL_USER,CLOUDSQL_PASSWORD,CLOUDSQL_DATABASE,CLOUDSQL_PORT) 

が、それは同じ問題を抱えていました。 GC SQLの許可されたネットワーク部分に私の計算エンジンのIPアドレスを定義し、AM & ADMINの部分に[email protected]にエディタの役割があると、許可の問題だとは思わない! 問題がどこにあるのか誰でも助けてくれますか?

答えて

0

大変申し訳ございません。私はこの問題を解決しました。私はthe Google cloud's documentationに続くが、私は単純な「/」をproblems.Iを追加しました:

cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME) 

の代わり'/cloudsql'それは'/cloudsql/'

する必要があります私はos.path.joinがパスに「/」を追加しなければならないので、それは奇妙だ知っているが、私が知らない奇妙な理由のためにそうしていなかった。

+0

実際には、私は問題を再現できません: 'os.path.join'が正しく '/'をあなたに追加します: >>> os.path.join( '/ cloudsql'、 '/ bananana:asdf:asdf') '/ cloudsql/bananana:asdf:asdf' あなたの問題を解決するために '/'を追加するだけでよいですか? –

+0

私は数日間同じことを考えていました。私は、 'os.path.join'が最後に '/'をつけるので、私の問題はその部分にないと思いました。しかし私は彼らが ''/cloudsql/{} '。format(connection_name) 'を使ったgithubに関するプロジェクトを見た。私はおそらくos.path.joinがパスに '/'を追加していない可能性があると考えました。私は '/'を追加して問題を解決しました!私はそれが奇妙なことを知っています。 –

関連する問題