【发布时间】:2020-01-27 16:41:55
【问题描述】:
我正在尝试通过 Wamp 将我的 java 程序连接到 MySql 数据库,但我得到的只是过多的 SQL 异常。
我已经尝试了 Stackoverflow 上几乎所有可用的问题或疑问或答案,但没有一个答案能解决我的问题....
也许我的问题会被标记为重复,但我不知道为什么其他答案中提到的解决方案对我不起作用,尽管获得了数百个赞成票。
这是我的代码
import java.sql.*;
public class SQLTest{
private static Connection connect = null;
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("Trying to Establish Database Connection.....");
//connect = DriverManager.getConnection("jdbc:mysql://localhost:8080/sys?user=root&password=root&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true");
connect = DriverManager.getConnection("jdbc:mysql://localhost:8080/sys", "root", "root");
System.out.println("Connection Established.");
} catch (SQLException se) {
System.out.println("connection problem");
se.printStackTrace();
} catch (Exception e){
System.out.println("Some Other Problem.");
e.printStackTrace();
}
}
}
这是我得到的回报
【问题讨论】:
-
在您的问题中包含整个堆栈跟踪。单独的异常名称是毫无用处的。
-
您的 MySQL 服务器可能没有监听端口 8080。这可能是 Apache(Web 服务器)正在监听的端口。请尝试连接到端口 3306。
-
@GordThompson 非常感谢它的工作。 httpd.conf 文件中的默认端口设置为 8080。我不知道 3306 的工作原理。虽然不需要,但如果有人能解释为什么这样工作那就太好了。
-
如果你问为什么是 3306,答案是它只是约定俗成的。 MySQL 通过端口 3306,Postgre 是 5432,等等。要解释为什么切换端口可以解决您的问题,请将数据视为发送到错误地址的邮件。您修改了地址,并且您的信件现在正在发送到正确的目的地:)
标签: java mysql jdbc database-connection