如果这是一个愚蠢的问题,请提前道歉,但我一直在尝试搜索这个问题,但无法找到任何相关内容。
因此,我尝试部署一个简单的注册/登录 Web 应用程序项目,该项目将用户信息插入到 EC2 实例上的 MySQL 数据库中/从 MySQL 数据库中检索用户信息。我想我将问题范围缩小到这些代码行
String url = "jdbc:mysql://{RDS Database Instance endpoint}:3306/";
String userName = "root";
String password = "password";
String dbName = "LOGIN";
Connection con = DriverManager.getConnection(url + dbName, userName, password);
除了使用这些行的登录/注册之外,页面运行良好。最初,这些是为了连接到我本地的 MySQL 数据库。我本地机器上的SQL脚本是
use LOGIN;
drop table if exists users;
create table users (
id int primary key auto_increment,
user_name varchar(50),
pass varchar(50),
email varchar(50),
mobile varchar(20)
);
我在 EC2 实例上遇到的错误是 con 为 null,其中 似乎是 EC2 上的数据库连接错误。
这就是我感到困惑的地方。我确实为 MySQL 创建了一个数据库名称为
LOGIN
的 Amazon RDS 实例(db.t2.micro 实例类型),并将其连接到 EC2 实例(t2.micro 实例)。不过,我还使用 EC2 实例终端安装了 MySQL 服务器,运行 mysql -u root -p
,并以这种方式创建了表 users
。 EC2 实例上的 MySQL 服务器具有看似不同主机名的数据库 mysql (?)。
我不确定这两者有什么区别,我应该在上面的
jdbc
连接代码中使用什么?
好吧,我现在解决了我的问题。如果其他人也有同样的问题,我将在这里发表评论:
首先是为数据库添加入站规则,这样就没有限制了。
第二件事是将 mysql-connector.jar 添加到我存储 tomcat 服务器的 bin 文件夹中。这是在本地添加的,但在部署到 EC2 上时不知何故未包含在内。