【发布时间】:2020-08-02 02:35:59
【问题描述】:
我正在尝试使用 Python 3 连接到 GCP Cloud SQL 实例并且不想使用云代理,我只想使用 SSL 证书直接连接,所以我按照 GCP 指南 here 从公共连接使用 ssl 密钥保护 IP。
在 mysql 客户端上使用它:
mysql -uroot -pMyPassWord -h 1.2.3.4 --ssl-ca=server-ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
但是,当我在 Python 中执行我认为相同的操作时,我得到一个错误:
from sqlalchemy import create_engine
db_connect_string='mysql+mysqldb://root:MyPassWord@1.2.3.4:3306/mydb'
ssl_args = {'ssl': {'ssl_cert':'./client-cert.pem', 'ssl_key':'./client-key.pem', 'ssl_ca':'./server-ca.pem'}}
engine = create_engine(db_connect_string, connect_args=ssl_args)
print(engine.table_names())
错误是:
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "访问被拒绝用户 'root'@'1.2.3.4'(使用密码:YES)”)(此错误的背景: http://sqlalche.me/e/e3q8)
如果不是因为我:
- 已将我的公共 IP 地址 1.2.3.4/32 添加为授权网络。
- 我可以通过mysql客户端访问,为什么限制不在那里?
我错过了什么?
【问题讨论】:
标签: python google-cloud-platform sqlalchemy google-cloud-sql