我是一个新手到这个谷歌应用程序引擎。我写了一个小的python代码,用于连接google cloud中的数据库。不幸的是,我得到了这个错误。
Traceback (most recent call last):
File "/home/revanth/Projects/workspace/project2/connect.py", line 28, in <module>
main()
File "/home/revanth/Projects/workspace/project2/connect.py", line 19, in main
user='revanth'
File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'revanth'@'76.183.80.171' (using password: NO)")
下面是我的Python代码
import googleapiclient
import MySQLdb
import os
#from google.storage.speckle.python.api import rdbms_googleapi
def main():
env = os.getenv('SERVER_SOFTWARE')
if (env and env.startswith('Google App Engine/')):
# Connecting from App Engine
db = MySQLdb.connect(
unix_socket='/cloudsql/citric-cistern-97118:geoeq',
user='revanth')
else:
# Connecting from an external network.
# Make sure your network is whitelisted
db = MySQLdb.connect(
host='173.194.232.179',
port=3306,
user='revanth'
)
cursor = db.cursor()
cursor.execute('select * from Whether')
rows = cursor.fetchall()
print rows
if __name__ == '__main__':
main()
请帮帮我
3条答案
按热度按时间xjreopfe1#
要授予对App Engine应用程序的访问权限,请执行以下操作:
注意:为了保证低延迟,可以通过在创建示例时选择首选位置或配置现有示例,使Google Cloud SQL示例尽可能靠近指定的App Engine应用程序。这仅适用于在美国和欧盟地区创建的示例。单击“保存”以应用更改。
llycmphe2#
我认为你的
import MySQLdb
有兼容性问题。我在Google Cloud Run中遇到了同样的问题。我的代码运行在本地机器是好的,但运行在云运行有错误“mysql.connector.errors.DatabaseError:2003年(HY000):无法连接到MySQL服务器上'34.105.87.213:3306'(110)”我改到sqlalchemy lib,这个问题就解决了。
旧lib:
新库:
gwbalxhn3#
我想出了解决办法。我只需要添加0.0.0.0/0允许所有外部IP地址连接它。
这里是链接:https://cloud.google.com/sql/docs/access-control
我需要在选项中指定密码。