mysql - 如何在 python3 中连接到 AWS mysql 数据库?
问题描述
我可以像这样使用 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 也这样做会容易得多,但事实并非如此。
推荐阅读
- reactjs - Material ui withStyles 和 WithTheme - 如何访问主题
- r - 我可以使用 Plotly 的自定义更新菜单按钮来更新 x 轴范围,而 shareX = FALSE 在子图中?
- html - 正确使用 Bootstrap 的 justify-content-between 和 stack-to-horizontal col
- java - 我想将字符存储在一个字节数组中并将这个字节数组写入一个文件并将文件读回并输出到屏幕
- javascript - ContentEditable 没有更新虚拟 DOM
- docker - 微服务架构中 docker 容器之间的身份验证,绕过 JWT 身份验证进行内部调用
- android - 如何使用 Navigator 推送值并接收它们?
- xml - CameraX 和条码扫描仪 - 条码扫描仪无法读取
- scala - 无法将 java.util.List 转换为 Scala 列表
- xslt - 如何创建导致空节点序列的源