【问题标题】:How do I connect to an AWS mysql database in python3?如何在 python3 中连接到 AWS mysql 数据库?
【发布时间】:2019-11-21 14:05:40
【问题描述】:

我可以像这样使用 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' (with my ip where the x should be)

我的 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 一样?

【问题讨论】:

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


    【解决方案1】:

    您需要将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 也可以使用会容易得多,但事实并非如此。

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 1970-01-01
      • 2020-06-01
      • 2019-12-09
      • 2018-11-18
      • 2020-10-18
      • 2021-04-19
      • 2021-04-06
      • 2013-12-25
      相关资源
      最近更新 更多