2017-05-07 3 views
0

Je suis le didacticiel MySQL pour Google Cloud trouvé here. J'ai copié le code dans main.py comme il est mais je reçois l'erreur suivante:Connexion à MySQL DB avec App Engine

File "D:\BitBucket\Code\main.py", line 44, in get db = connect_to_cloudsql() File "D:\BitBucket\Code\main.py", line 34, in connect_to_cloudsql db = MySQLdb.connect(host='127.0.0.1', user=CLOUDSQL_USER, passwd=CLOUDSQL_PASSWORD) File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect return Connection(*args, **kwargs) File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 191, in __init__ super(Connection, self).__init__(*args, **kwargs2) TypeError: connect() argument 2 must be string, not None

Je vois que connect_to_cloudsql() doit prendre deux arguments, mais je ne peux pas trouver quoi que ce soit dans la documentation qui pointe vers quoi.

Mon app.yaml ressemble à ceci:

# application: reliance-it 
    # # application: reliance-test 
    # module: default 
    # version: 5 
    # runtime: python27 
    # api_version: 1 
    # instance_class: F2 
    # threadsafe: true 
    # automatic_scaling: 
    # min_idle_instances: 0 
    # max_idle_instances: automatic 
    # min_pending_latency: 30ms 
    # max_pending_latency: automatic 

    application: reliance-group 
    module: default 
    version: 1 
    runtime: python27 
    api_version: 1 
    threadsafe: yes 

    env_variables: 
     CLOUDSQL_CONNECTION_NAME: reliance-group:us-central1:cash-flow 
     CLOUDSQL_USER: root 
     CLOUDSQL_PASSWORD: p_ROOTadmin$123 

    libraries: 
    - name: MySQLdb 
    version: "latest" 

    - name: webapp2 
    version: latest 
    - name: jinja2 
    version: latest 
    - name: pycrypto 
    version: "2.6" 
    - name: PIL 
    version: latest 

    inbound_services: 
    - mail 

    handlers: 
    - url: /stylesheets 
    static_dir: css 
    mime_type: text/css 
    - url: /scripts 
    static_dir: js 

    - url: /favicon\.ico 
    static_files: css/images/favicon.ico 
    upload: css/images/favicon.ico 



    #========Default Handler========= 
    - url: /.* 
    script: main.application 
+0

À quoi ressemble votre app.yaml? Assurez-vous d'ajouter les variables d'environnement correspondantes, comme indiqué ici: https://cloud.google.com/appengine/docs/standard/python/cloud-sql/#setting-up – alpeware

+0

J'ai mis à jour le message d'origine pour afficher mon application. yaml content – Y2H

+0

Il semble que les variables d'environnement ne sont pas définies correctement. Je ne suis pas sur Windows, donc pas tout à fait sûr. Essayez de citer les valeurs. Vous pouvez vérifier s'ils sont correctement définis dans votre code en les connectant simplement à votre console après les avoir lus. Aussi, s'il vous plaît assurez-vous de changer votre mot de passe. – alpeware

Répondre

0

Transforme que la sortie de CLOUDSQL_CONNECTION_NAME = os.environ.get('connection-name') est None. Il suffit de remplacer cela par CLOUDSQL_CONNECTION_NAME = 'connection-name' et de faire la même chose pour CLOUDSQL_USER et CLOUDSQL_PASSWORD fait l'affaire. J'espère que les gens trouveront ma réponse utile s'ils doivent faire face au même problème.