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

时间:2019-07-11 19:38:01

标签: 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中发生。像javascript一样,这是否与ssl有关?

1 个答案:

答案 0 :(得分:0)

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

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

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