如何编写java程序来验证aurora mysql数据库?

iswrvxsc  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(587)

我在编写一个java程序来运行aurora数据库上的sql查询时遇到了问题。
我知道我的数据库名是goodnameofdb。
我运行以下命令:aws rds descripe db instances | grep dbinstanceidentifier
我看到了:

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

我知道我的极光数据库的地址。我运行这个命令:aws rds descripe db instances | grep goodnameofdb-us-west-2b.def123456
我看到了:
“地址”:“goodnameofdb-us-west-2b.def123456.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'
我从一个ec-2示例运行java程序,该示例与aurora数据库所在的vpc相同(我希望程序能够连接到aurora数据库并进行身份验证。我的连接jdbc连接字符串有什么问题?或者为什么我会犯这个错误?
更新:当我删除字符串“:3306/”部分后的“goodnameofdb”并重新编译程序时,运行程序时会出现错误。我收到的错误是
java.sql.sqlexception:未选择数据库
因此,我认为数据库名称必须存在。我的awscli命令似乎告诉我名称是正确的。

pu82cl6c

pu82cl6c1#

似乎数据库“goodnameofdb”不存在。你可以从mysql公共线查询。 mysql -hgoodnameofdb-us-west-2b.def123456.us-east-2.rds.amazonaws.com -ujdoe -psecurepassword; show databases; 如果goodnameofdb不存在,则需要创建一个名为goodnameofdb的数据库。 mysql> create DATABASE goodnameofdb; 然后,再试一次。
我们的团队也使用aurora,aurora与mysql兼容。

s1ag04yj

s1ag04yj2#

当你创建极光星团时,你提到 database-name 姓名和 master-user 以及 master-user-password . 这里的数据库是指默认的mysql数据库(也称为 schema 有时)而不是您的db集群标识符(在您的示例“goodnameofdb”中)。
在您的例子中,您创建的默认数据库可能没有命名 goodnameofdb 或者您没有显式地提供一个,从而使aurora为您创建一些默认数据库。
不能使用aws cli获取数据库示例的数据库名称。使用主用户凭据,通过mysql cli(或类似的东西)连接到db,并列出数据库( show databases; )在你的极光星团里。
我很肯定你在尝试使用一个不存在的mysql数据库。

相关问题