无法使用我自己的lan ip访问jdbc mysql

时间:2016-04-14 08:21:17

标签: java mysql jdbc

我使用jdbc从java连接MySql并使用Apache服务器。

Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/" + Db, dbuser, dbpasswd);
            stmt = con.createStatement();

我甚至可以使用127.0.0.1

访问它

一切顺利,直到我尝试用java连接我自己的局域网IP地址。

我的局域网IP:192.168.0.12

所以我希望能够像这样访问它

    Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection(
                    "jdbc:mysql://192.168.0.12:3306/" + Db, dbuser, dbpasswd);
            stmt = con.createStatement();

但是我可以在像这样的浏览器中访问它

  

http://192.168.0.12/phpmyadmin/

3 个答案:

答案 0 :(得分:1)

对于那些对解决方案感到好奇的人,我找到了一种方法。

1)在mysql config中找到my.ini文件,查找bind_address

2)填写你的地址以允许(在我的情况下我允许每个主机,所以我把0.0.0.0)

3)向主持人添加赠款,我认为有2个选项。首先,使用此Sql命令,

 Do I=1 to 5;
     Year=intnx('year', date, 1);

      Rest of code;
 End;

第二,如果您使用的是phpmyadmin,您可以转到数据库菜单上的“特权”选项卡,添加所有特权并授予用户/用户类型。

答案 1 :(得分:0)

默认情况下,只能从localhost访问新安装的MySQL服务器。

检查SQL服务器上的文件/etc/mysql/my.cnf。如果它有" bind-address = 127.0.0.1"这样的行,则注释掉该行并重新启动MySQL服务器。

您可能需要添加对远程IP的访问权限 - 请参阅本指南:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

答案 2 :(得分:0)

确保在类路径中添加了mysql driver library

在192.168.0.12的机器上,仔细检查您是否已取消阻止3306端口。

你没有在那里的示例代码中包含完整的URL,但我认为在“+ Db”之后它会看起来像这样。

for key in data

端口不需要包含在URL中,因为您使用的是默认端口,但如果您想要显式,请随意。

我还应该提一下,您在http://192.168.0.12/phpmyadmin/访问网站的能力并不意味着您可以从其他计算机访问该网站。 phpmyadmin软件是访问localhost,您的计算机不访问localhost来查看该数据库。