我正在尝试通过 psycopg2 将我的 Cloud SQL PostgreSQL 数据库连接到我的 Compute Engine 实例。我的连接字符串如下:
con = psycopg2.connect(
dbname=config('DATABASE'),
user=config('USER'),
password=config('PASSWORD'),
host=config('HOST'),
port=config('PORT')
)
使用端口 5432 和 postgresql 数据库的公共(public) IP 地址。数据库、用户和密码都正确。当我通过计算实例运行此代码时,出现以下错误
Traceback (most recent call last):
File "main.py", line 16, in <module>
bot.add_cog(Profile(bot))
File "/home/username/appname/Profile.py", line 22, in __init__
port=config('PORT')
File "/home/username/.local/lib/python3.7/site-
packages/psycopg2/__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL: password authentication failed for user
"mygcloudusername"
FATAL: password authentication failed for user "mygcloudusername"
出于某种原因,它似乎试图以用户身份通过我的 gcloud 用户名进行连接,即使在连接字符串中指定了正确的用户。我哪里出错了?我怎样才能正确连接它?
您能否验证 CloudSQL API 是否已启用 [1] ?作为信息,这里是文档 [2]使用推荐的配置和设置创建 PostgreSQL 实例。
我还推荐文档 [3]关于“从外部应用程序连接到 CloudSQL”。这是用 python 编写的代码示例 [4] .
我是一名优秀的程序员,十分优秀!