2017-05-11 2 views
0

MySQL 데이터베이스를 App Engine과 함께 사용하는 데 익숙하지 않은데 누군가 내가 갖고있는 문제로 나를 도울 수 있기를 바랍니다. 나는 구글 아카데미 튜토리얼에서 얻은 로컬 또는 클라우드 데이터베이스와의 연결을 설정하는 함수 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_NAME입니다 None을입니다. 환경 변수를 설정하지 않았습니까?

+0

안녕하세요 L_S. app.yaml에 환경 변수를 설정했습니다. 나는'CLOUDSQL_CONNECTION_NAME','CLOUDSQL_USER' 및'CLOUDSQL_PASSWORD' 변수를 설정합니다. 내가 놓친 다른 것이 있습니까? – Y2H