Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写Java程序对Aurora MySQL数据库进行身份验证?_Java_Mysql_Amazon Web Services_Amazon Aurora - Fatal编程技术网

如何编写Java程序对Aurora MySQL数据库进行身份验证?

如何编写Java程序对Aurora MySQL数据库进行身份验证?,java,mysql,amazon-web-services,amazon-aurora,Java,Mysql,Amazon Web Services,Amazon Aurora,我在编写将在Aurora数据库上运行SQL查询的Java程序时遇到问题 我知道我的数据库名是goodnameofdb 我运行以下命令:aws rds descripe db instances | grep DBInstanceIdentifier 我看到: "ReadReplicaDBInstanceIdentifiers": [], "DBInstanceIdentifier": "goodnameofdb" "ReadReplicaDBIns

我在编写将在Aurora数据库上运行SQL查询的Java程序时遇到问题

我知道我的数据库名是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.abcdef123456

我看到:

        "ReadReplicaDBInstanceIdentifiers": [],
        "DBInstanceIdentifier": "goodnameofdb"
        "ReadReplicaDBInstanceIdentifiers": [],
        "DBInstanceIdentifier": "goodnameofdb-us-west-2b"
“地址”:“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”

我从一个EC-2实例运行Java程序,该实例与Aurora数据库所在的VPC相同。(我通过AWS CLI命令进行了检查。)我希望程序能够连接到Aurora数据库并进行身份验证。 我的连接JDBC连接字符串有什么问题?或者为什么我会犯这个错误

更新:当我删除字符串中“:3306/”部分后的“goodnameofdb”并重新编译程序时,我在运行程序时出错。我收到的错误是

java.sql.SQLException:未选择任何数据库


因此,我认为必须有一个数据库名。我的AWS CLI命令似乎告诉我名称正确。

数据库“goodnameofdb”似乎不存在。 您可以从mysql公共行进行检查。

mysql-hgoodnameofdb-us-west-2b.abcdef123456.us-east-2.rds.amazonaws.com-ujdoe-psecurepassword;
显示数据库;

如果goodnameofdb不存在,则需要创建一个名为goodnameofdb的db。

mysql>创建数据库goodnameofdb;

然后,再试一次


我们的团队也使用aurora,aurora与mysql兼容。

当您创建aurora集群时,您会提到
数据库名称
名称以及
主用户
主用户密码
。这里的数据库指的是默认的mysql数据库(有时也指
schema
),而不是您的db集群标识符(在您的示例“goodnameofdb”中)

在您的例子中,您创建的默认数据库可能没有命名为
goodnameofdb
,或者您没有明确提供一个,从而使Aurora为您创建一些默认数据库

无法使用AWS CLI获取数据库实例的数据库名称。使用主用户凭据,通过mysql cli(或类似工具)连接到数据库,并列出Aurora群集中的数据库(
show databases;


我相当肯定您正在尝试使用一个不存在的mysql数据库

您能从ec2实例中使用mysql工具打开数据库吗?(例如
mysql-hgoodnameofdb-us-west-2b.abcdef123456.us-east-2.rds.amazonaws.com-ujdoe-psecurepassword goodnameofdb
)否。我得到“错误1049(42000):未知数据库goodnameofdb”是否与
goodnameofdb-us-west-2b
一起工作?否。请注意端点(如AWS控制台所示)包括“abcdef123456”。我尝试了goodnameofdb的变体(包括使用AWS控制台显示的端点)。他们都带着“未知数据库…”
…amazonaws.com:3306/goodnameofdb