关于 javaweb 连接远程数据库的一些问题

javaweb 连接远程数据库出了点小问题,记录一下解决过程

问题背景

使用 javaweb 连接数据库,包成功导入,连接不成功,页面无任何显示

解决顺序

查看数据库是否支持外网连接

在本地使用数据库管理软件直接连接远程数据库,查看是否成功

如果不成功可以按照以下方法任意一种解决

1. 修改 my.cnf 配置文件

找到 bind-address = 127.0.0.1 这一句,然后在前面加个 #号注释掉,保存退出

2. 服务端开启远程访问

先在服务器中通过命令行方式登录 mysql:

**mysql -uroot -p 密码 **

**2、执行 use mysql; **

*3、执行 grant all privileges on \.* toroot@’%’ identified by ‘密码’; **

4、执行 flush privileges;

注:以上步骤 2、3、4 中命令后么的分号也是命令的一部分,执行的时候不要漏掉。密码处请设置 mysql 的密码。

把上面命令中密码改为你的密码,如果你使用了 phpstudy,可以在其他菜单选项 - MySQL 工具 - MySQL 命令行 中执行 2,3,4 步骤开启

注:使用腾讯云等云服务器的注意要开启相应外网访问的端口访问权限

导入包问题

上面设置成功好可以测试一波,查看是否成功连接。

如果还不成功,并且报错 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver,那可能导入包出问题了。

image

我之前已经导入成功了,但是依旧错误,后来了解到
在java项目中,只需要引入mysql-connector-java-xxx-bin.jar就可以运行java项目。在web项目中,当Class.forName(“om.mysql.jdbc.Driver”);时eclipse/IDEA是不会去查找字符串,不会去查找驱动的。所以只需要把mysql-connector-java-xxx-bin.jar拷贝到tomcat下lib目录就可以了。

将这个 jar 文件放入到工程的 web/WEB-INF/lib 中,再进行导入就可以