我使用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();
但是我可以在像这样的浏览器中访问它
答案 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来查看该数据库。