2017-05-11 13 views
0

私はApp EngineでMySQLデータベースを使用するのが初めてで、私が抱えている問題を誰かが助けてくれることを願っていました。私はGoogleのアカデミーのチュートリアルから得たローカルまたはクラウドデータベースとの接続を確立する機能connect_to_cloudsql()を持っています。以下のコードは次のとおりです。私は、データベースに接続するために私のクラスでconnect_to_cloudsql()を使用App EngineからMySQL DBに接続する

# These environment variables are configured in app.yaml. CLOUDSQL_CONNECTION_NAME = os.environ.get(<something here>) CLOUDSQL_USER = os.environ.get(<something here>) CLOUDSQL_PASSWORD = os.environ.get(<something here>)

def connect_to_cloudsql(): 
    # When deployed to App Engine, the 'SERVER_SOFTWARE' environment variable 
    # will be set to 'Google App Engine/version'. 
    if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'): 
     # Connect using the unix socket located at 
     # /cloudsql/cloudsql-connection-name. 
     cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME) 

     db = MySQLdb.connect(
      unix_socket=cloudsql_unix_socket, 
      user=CLOUDSQL_USER, 
      passwd=CLOUDSQL_PASSWORD) 

    # If the unix socket is unavailable, then try to connect using TCP. This 
    # will work if you're running a local MySQL server or using the Cloud SQL 
    # proxy, for example: 
    # $ cloud_sql_proxy -instances=your-connection-name=tcp:3306 

    else: 
     db = MySQLdb.connect(host='localhost', port=3310, user='root', passwd='something here', db='DB1') 

    return db 

。コードは、ローカルで正常に動作しますが、私は展開し、それを使用しようとすると、私は次のエラーを取得する:

File "/base/data/home/apps/s~reliance-group/1.401176020169136394/sql/tests.py", line 70, in get 
con = connect_to_cloudsql() 
File "/base/data/home/apps/s~reliance-group/1.401176020169136394/sql/tests.py", line 45, in connect_to_cloudsql 
'/cloudsql', CLOUDSQL_CONNECTION_NAME) 
File "/base/data/home/runtimes/python27_experiment/python27_dist/lib/python2.7/posixpath.py", line 68, in join 
if b.startswith('/'): 
AttributeError: 'NoneType' object has no attribute 'startswith' 

答えて

0

ここでエラーが

CLOUDSQL_CONNECTION_NAMENoneです。環境変数を設定していないかもしれません。

+0

こんにちはL_Sです。私はapp.yamlに環境変数を設定しました。変数 'CLOUDSQL_CONNECTION_NAME'、' CLOUDSQL_USER'、 'CLOUDSQL_PASSWORD'を設定しました。私は行方不明の何か他のものがありますか? – Y2H

関連する問題