java.net.ConnectException : Connection timed out: connect, 使用路由器

标签 java mysql database processing router

我正在尝试将一台 PC(使用 XAMPP)连接到另一台 PC(使用 Processing)。为此,我下载了一个用于处理的 MySQL 库: 导入 de.bezier.data.sql.*;

当我使用 localhost 作为服务器时,它可以工作,当两台计算机都有互联网时,它可以与其他计算机一起工作。但是,我需要它在本地网络中工作,所以没有互联网,只有路由器的无线连接。在这里它失败了。我不知道为什么。即使我使用 LAN 电缆,我也可以通过 URL 访问“服务器”。但是当我想在 Processing 中访问它时,我得到了这个:

SQL.connect(): Could not connect to the database ( jdbc:mysql://192.168.0.103/event ).

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection timed out: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection timed out: connect
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at de.bezier.data.sql.SQL.connect(Unknown Source)
    at MySQL_example1.setup(MySQL_example1.java:56)
    at processing.core.PApplet.handleDraw(PApplet.java:2103)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:190)
    at processing.core.PApplet.run(PApplet.java:2006)
    at java.lang.Thread.run(Thread.java:662)


** END NESTED EXCEPTION **



Last packet sent to the server was 26 ms ago.
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2643)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at de.bezier.data.sql.SQL.connect(Unknown Source)
    at MySQL_example1.setup(MySQL_example1.java:56)
    at processing.core.PApplet.handleDraw(PApplet.java:2103)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:190)
    at processing.core.PApplet.run(PApplet.java:2006)
    at java.lang.Thread.run(Thread.java:662)

我如何让它工作?感谢任何形式的帮助!

编辑:代码基本上是图书馆的例子。我更改了密码、用户名和我想与之通信的 IP 地址。 'event' 是数据库,'db_name' 是表。

    import de.bezier.data.sql.*;


// created 2005-05-10 by fjenett
// updated fjenett 20081129


MySQL msql;


void setup()
{
    size( 100, 100 );

    // this example assumes that you are running the 
    // mysql server locally (on "localhost").
    //

    // replace --username--, --password-- with your mysql-account.
    //
    String user     = "user123";
    String pass     = "1234";

    // name of the database to use
    //
    String database = "event";
    // add additional parameters like this:
    // bildwelt?useUnicode=true&characterEncoding=UTF-8

    // connect to database of server "localhost"
    //
    msql = new MySQL( this, "192.168.0.103", database, user, pass );

    if ( msql.connect() )
    {
        msql.query( "SELECT COUNT(*) FROM db_name" );
        msql.next();
        int rand = int(random(msql.getInt(1)));

        println( "randomrow: " + msql.getInt(1) );
    }
    else
    {
        // connection failed !
    }
}

void draw()
{
    // i know this is not really a visual sketch ...
}

EDIT2:可能是带有 XAMPP 的 PC 必须先激活 Telnet 服务器服务吗?

最佳答案

好的,对于将来遇到同样问题的每个人:装有 XAMPP 的计算机可能已授予我对 MySQL 数据库的所有权限,但计算机本身不允许访问任何其他计算机。这只是一个临时解决方案,但我在装有 XAMPP 的计算机上关闭了 Windows 防火墙并且它起作用了。

关于java.net.ConnectException : Connection timed out: connect, 使用路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774208/

相关文章:

Java:序列化java对象的大小和反序列化时内存消耗的巨大差异

mysql - 可空外键的 Laravel Seed

mysql - 无法使用 Ubuntu 10.10 将数据从 MySql 导入 Solr

database - 在外键约束列上创建非唯一索引

mysql - 获取数据库中表的最后更新时间

java - 如何测试 java.net.http (Java 11) 请求 BodyPublisher?

java - 任何多边形的周长 - java

php - 在一个简单的 CMS 上工作——如何处理用户的访问权限?

mysql - SQL Server : Want to use between clause with dates, 但日期为字符串形式 (YYYY.MM.DD)

java - LogManager.getLogger() 无法确定 Java 11 上的类名