У меня проблема с написанием 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 говорят, что у меня правильное имя.