私は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]にエディタの役割があると、許可の問題だとは思わない! 問題がどこにあるのか誰でも助けてくれますか?
実際には、私は問題を再現できません: 'os.path.join'が正しく '/'をあなたに追加します: >>> os.path.join( '/ cloudsql'、 '/ bananana:asdf:asdf') '/ cloudsql/bananana:asdf:asdf' あなたの問題を解決するために '/'を追加するだけでよいですか? –
私は数日間同じことを考えていました。私は、 'os.path.join'が最後に '/'をつけるので、私の問題はその部分にないと思いました。しかし私は彼らが ''/cloudsql/{} '。format(connection_name) 'を使ったgithubに関するプロジェクトを見た。私はおそらくos.path.joinがパスに '/'を追加していない可能性があると考えました。私は '/'を追加して問題を解決しました!私はそれが奇妙なことを知っています。 –