Я пытаюсь подключиться к своей 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 все еще остается большой загадкой.