Как мне подключиться к базе данных AWS mysql в python3? - PullRequest
0 голосов
/ 11 июля 2019

Я могу подключиться к mysql используя cli следующим образом:

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. Это, кажется, происходит только с питоном. Это как-то связано с ssl, как это было с javascript?

1 Ответ

0 голосов
/ 11 июля 2019

Вам необходимо добавить аргумент 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 тоже это делал, но это не так.

...