Подключение к RDS MySQL программно (NodeJs, Java) - ER_ACCESS_DENIED_ERROR: доступ запрещен для пользователя - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь подключиться к своей RDS (базе данных AWS MySQL), используя библиотеку NodeJs mysql.

const mysql = require('mysql');

var connection;

connection = mysql.createConnection({
      host: 'xxx.us-east-1.rds.amazonaws.com',
      port: 3306,
      user: "username",
      password: "MyPassword",
      database: "DbName",
    });

Я также пробовал mysql2 и продолжение.Все они дали мне один и тот же результат:

{ error: ER_ACCESS_DENIED_ERROR: Access denied for user 'username'@'myhost, code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlState: '28000' }

Однако эта удаленная база данных установлена ​​как общедоступная, и я могу подключиться к ней с помощью команды mysql:

mysql -u username -pMyPassowrd -h xxx.us-east-1.rds.amazonaws.com

Я также могу подключиться к нему с MySQL Workbench.

Кроме того, проблема не в NodeJ, потому что я могу подключиться к своей локальной базе данных:

connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'root',
      database: 'test',
    });

В заключение, моя база данных AWS общедоступна, и я могу подключиться к ней, просто по какой-то причине не используя NodeJ.

Я еще не нашел полезного ответа.Кто-нибудь сталкивался с этой проблемой?

ОБНОВЛЕНИЕ:

Попытка подключения в Java с помощью простого подключения также возвращает тот же результат:

final Connection con = DriverManager.getConnection("jdbc:mysql:/xxx.us-east-1.rds.amazonaws.com:3306/DbName", "username", "MyPassword");

ОБНОВЛЕНИЕ 2:

Мне не хватало одной косой черты для кода Java.Мне нужно было использовать jdbc:mysql:// вместо jdbc:mysql:/.Но реализация NodeJ все еще остается большой загадкой.

1 Ответ

0 голосов
/ 10 июня 2019

Ответ был довольно прост, просто добавьте параметр ssl с true значением

connection = mysql.createConnection({
      host: 'xxx.us-east-1.rds.amazonaws.com',
      port: 3306,
      user: "username",
      password: "MyPassword",
      database: "DbName",
      ssl: true //this does the trick
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...