如何连接到 python3 中的 AWS mysql 数据库?
How do I connect to an AWS mysql database in python3?
我可以像这样使用 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 中也有效,但是 仅 如果我在创建连接(数据库在 AWS RDS 上)。
我需要做什么才能从 python 进行连接? 我可以从同一台计算机上的其他应用程序进行连接,因此我可以排除 AWS 安全组和MySQL 主机限制。这似乎只发生在 python。这是否像 javascript 那样与 ssl 有关?
您需要将 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 也能使用会容易得多,但事实并非如此。
我可以像这样使用 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 中也有效,但是 仅 如果我在创建连接(数据库在 AWS RDS 上)。
我需要做什么才能从 python 进行连接? 我可以从同一台计算机上的其他应用程序进行连接,因此我可以排除 AWS 安全组和MySQL 主机限制。这似乎只发生在 python。这是否像 javascript 那样与 ssl 有关?
您需要将 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 也能使用会容易得多,但事实并非如此。