mysql - 如何连接到 python3 中的 AWS mysql 数据库?

标签 mysql python-3.x ssl amazon-rds pymysql

我可以像这样使用 cli 连接到 mysql:

mysql -u cwaugh -p******** -h example.com mydb

但是,当我尝试使用具有相同参数的 python3 时,出现错误:mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'cwaugh'@'xxx.xxx。 xxx.xxx' (我的 ip 应该在 x 的位置)

我的 python 代码如下所示:

import mysql.connector
import datetime

thinknode = mysql.connector.connect(
    host = "example.com",
    user = "cwaugh",
    passwd = "********",
    db = "mydb")

凭据也适用于 javascript,但 如果我在创建连接(数据库)时使用了 ssl: "Amazon RDS"在 AWS RDS 上)。

我需要做什么才能从 python 连接?我可以从同一台计算机上的其他应用程序进行连接,因此我可以排除 AWS 安全组和 MySQL 主机限制。这似乎只发生在 python 上。这是否与 ssl 有关系,就像它与 javascript 一样?

最佳答案

您需要将 ssl_ca 参数添加到 mysql.connector.connect 函数。例如。

thinknode = mysql.connector.connect(
    host = "example.com",
    user = "cwaugh",
    passwd = "********",
    db = "mydb",
    ssl_ca = "./rds-combined-ca-bundle.pem")

我不确定为什么 javascript 能够使用“Amazon RDS”,如果 python 也能使用它会容易得多,但事实并非如此。

关于mysql - 如何连接到 python3 中的 AWS mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996222/

相关文章:

python - 为什么 Python 枚举中的可变值是同一个对象?

java - 如何从 keystore 中列出/导出私钥?

wordpress - 在多站点 Wordpress 安装中将域 URL 从 https 更改为 http

mysql - 具有 max 和多个连接的 sql

MySQL 全文搜索多个字段

java - Android-值未插入数据库

c# - 如何将行插入到表适配器提交和更新datagridview?

Python 3 utf-8 编码好像不对?

iphone - Apple 终端无法访问 SSL 站点和神秘的 curl 错误

python - 在 python 3 中使用链表进行三个(或更多)不同变量赋值的操作顺序