Как вы пишете Java-программу для аутентификации в базе данных Aurora MySQL? - PullRequest
0 голосов
/ 28 декабря 2018

У меня проблема с написанием Java-программы, которая будет выполнять SQL-запрос к базе данных Aurora.

Я знаю, что моя база данных называется goodnameofdb.

Я запускаю эту команду: aws rdsописать-DB-экземпляры |grep DBInstanceIdentifier

Я вижу это:

        "ReadReplicaDBInstanceIdentifiers": [],
        "DBInstanceIdentifier": "goodnameofdb"
        "ReadReplicaDBInstanceIdentifiers": [],
        "DBInstanceIdentifier": "goodnameofdb-us-west-2b"

Я знаю адрес своей базы данных Aurora.Я запускаю эту команду: aws rds description-db-instances |grep goodnameofdb-us-west-2b.abcdef123456

Я вижу это:

"Адрес": "goodnameofdb-us-west-2b.abcdef123456.us-east-2.rds.amazonaws.com "

Моя программа на Java компилируется.У меня тоже есть драйвер в правильном каталоге.

У меня есть Java-программа с таким кодом:

import java.sql.*;
class MysqlCon{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://goodnameofdb-us-west-2b.abcdef123456.us-east-2.rds.amazonaws.com:3306/goodnameofdb","jdoe","securepassword");
 Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("show tables");
while(rs.next())
System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));
con.close();
}catch(Exception e){ System.out.println(e);}
}
}

Когда я запускаю скомпилированную программу, она не работает.Я вижу эту ошибку:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: неизвестная база данных 'goodnameofdb'

Я запускаю свою программу Java из экземпляра EC-2он находится в том же VPC, в котором находится база данных Aurora. (Я проверял с помощью команд CLI AWS.) Я ожидаю, что программа подключится к базе данных Aurora и выполнит аутентификацию.Что не так с моей строкой соединения JDBC?Или почему я получаю эту ошибку?

Обновление: когда я удаляю «goodnameofdb» после части «: 3306 /» строки и перекомпилирую программу, я получаю ошибку при запуске программы.Я получаю сообщение об ошибке:

java.sql.SQLException: база данных не выбрана

Поэтому я считаю, что имя базы данных должно быть там.Кажется, мои команды CLI AWS говорят, что у меня правильное имя.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Когда вы создаете кластер Aurora, вы упоминаете имя database-name вместе с master-user и master-user-password.Здесь база данных относится к базе данных mysql по умолчанию (также иногда называемой schema), а НЕ к вашему идентификатору кластера БД (в вашем примере «goodnameofdb»).

В вашем случае, похоже, что созданная вами база данных по умолчанию - НЕ НАЗВАН goodnameofdb или вы НЕ ПРЕДОСТАВЛЯЛИ ее явно, что заставило Aurora создать для вас базу данных по умолчанию.

Вы не можете использовать AWS CLI для получения имени базы данных вашего экземпляра БД.Используйте свои учетные данные главного пользователя, подключитесь к базе данных через mysql cli (или что-то подобное) и перечислите базы данных (show databases;), которые есть в вашем кластере Aurora.

Я вполне уверен, что вы пытаетесь использовать несуществующую базу данных MySQL.

0 голосов
/ 28 декабря 2018

Кажется, что база данных "goodnameofdb" не существует.Вы можете проверить с MySQL линии связи. mysql -hgoodnameofdb-us-west-2b.abcdef123456.us-east-2.rds.amazonaws.com -ujdoe -psecurepassword; show databases;

Если goodnameofdb не существует, вам необходимо создать базу данных с именем goodnameofdb. mysql> create DATABASE goodnameofdb;

Затем попробуйте еще раз.

Наша команда также использует aurora, aurora совместима с mysql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...