Java 如何修复JDBC中的SQLNonTransientConnectionException
我正试图通过Wamp将我的java程序连接到MySql数据库,我得到的只是大量的SQL异常 我尝试了Stackoverflow上几乎所有的问题或疑问或答案,但没有一个答案解决了我的问题 也许我的问题会被标记为重复,但我不知道为什么其他答案中提到的解决方案对我不起作用,尽管我得到了上百张选票 这是我的密码Java 如何修复JDBC中的SQLNonTransientConnectionException,java,mysql,jdbc,database-connection,Java,Mysql,Jdbc,Database Connection,我正试图通过Wamp将我的java程序连接到MySql数据库,我得到的只是大量的SQL异常 我尝试了Stackoverflow上几乎所有的问题或疑问或答案,但没有一个答案解决了我的问题 也许我的问题会被标记为重复,但我不知道为什么其他答案中提到的解决方案对我不起作用,尽管我得到了上百张选票 这是我的密码 import java.sql.*; public class SQLTest{ private static Connection connect = null; publi
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();
}
}
}
这是我得到的回报
httpd.conf文件中的默认端口设置为8080。我不知道3306是怎么工作的
WAMP堆栈由四个组件组成:Windows、Apache、MySQL和PHP
Apache是接收HTTP请求并返回网页的服务器软件httpd.conf
是它的配置文件。Apache的默认端口是80,但WAMP堆栈通常使用不同的端口,如8080,用于开发目的
MySQL是接收SQL查询并返回这些查询结果的组件。它在与Apache不同的端口上侦听。MySQL的配置文件是
my.ini
。MySQL的默认端口是3306。在您的问题中包括整个stacktrace。单是异常名称是毫无用处的。您的MySQL服务器可能没有侦听端口8080。这可能是Apache(web服务器)正在侦听的端口。请尝试连接到端口3306。@GordThompson非常感谢它的工作。httpd.conf文件中的默认端口设置为8080。我不知道3306是怎么工作的。虽然不需要,但如果有人能解释为什么这会起作用,那就太好了。如果你问为什么是3306,答案是这只是惯例。MySQL通过端口3306,Postgre是5432,等等。为了解释为什么交换端口解决了您的问题,请将数据视为邮件发送到错误的地址。您确定了地址,您的信件现在正到达正确的目的地:)