为什么我无法通过Internet连接到我的数据库

时间:2015-10-03 02:46:00

标签: sql database mysqli

我有一个名为roottesting的sql数据库,我在ip 192.168.1.121管理它。我还有一个简单的java应用程序,通过互联网连接到它(或者更确切地说,应该连接到它),用户名为'user',主机为'%',我知道这将使其可用于任何使用它的电脑。这是我的程序连接到数据库的方法:

public void addTestEntry(TestEntry testEntry)
        throws ClassNotFoundException, SQLException {

    tests.add(testEntry);

    Class.forName("com.mysql.jdbc.Driver");

    String url = "jdbc:mysql://192.168.1.121/roottesting";

    con = DriverManager.getConnection(url, "user", "S@cajaw3a");

    PreparedStatement statement = con
            .prepareStatement("insert into tests values(?, ?, ?)");

    statement.setString(1, testEntry.getName());
    statement.setInt(2, testEntry.getCorrect());
    statement.setInt(3, testEntry.getIncorrect());

    statement.executeUpdate();

    con.close();
}

每次我在我的家庭网络Beigecedar上的另一台计算机上下载程序时都会这样做,但是当我尝试在另一个网络上执行此操作时,例如我学校的网络,它不起作用并提供标有此信号的标准消息找不到数据库。任何人都可以给我一个关于如何通过互联网连接到我的数据库的建议,无论运行该程序的计算机在哪个网络上?

3 个答案:

答案 0 :(得分:0)

192.168.1.121是本地IP,需要一个公共IP。如果你有互联网,你可以使用像www.whatismyip.com这样的东西来了解你的公共IP。该IP的问题可能会随着时间而改变,因此您的应用程序将来也可能会崩溃。

如果您在路由器后面,请使用防火墙为您的电脑重新启动公共IP

答案 1 :(得分:0)

您要连接的IP地址是所谓的Reserved IP Address

它仅适用于您的网络(192.168.0.0/16)。除此之外,让我们解决两件事。

如果您被允许从互联网连接到您自己的计算机(IE:防火墙和端口打开),那么您可以使用public IP Address

进行连接

您还必须考虑学校允许开放的端口。它们可能会阻止您建立此连接所需的端口。

答案 2 :(得分:0)

192.x.x.x是私有地址范围。它只能在本地使用,而不能在互联网路由器之外。如果您希望从其他站点访问此主机,请查看设置NAT(网络地址转换)。