当我尝试使用jdbc连接mysql意味着它在localhost上成功连接。但是我用我的IP地址替换了localhost意味着itz没有连接..我的错误是来了..它已被清除..帮助我。< / p>
dis是我的编码:
package com.retrieve;
import java.sql.*;
public class retrieve{
public static void main(String[] args) {
System.out.println("Getting All Rows from a table!");
Connection con = null;
String url = "jdbc:mysql://192.168.1.249:3306/";
String db = "login";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "";
try{
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db, user, pass);
try{
Statement st = con.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM login");
System.out.println("username: " + "\t" + "password: ");
while (res.next()) {
String s = res.getString("username");
String s1 = res.getString("password");
System.out.println(s1 + "\t\t" + s);
}
con.close();
}
catch (SQLException s){
System.out.println("SQL code does not execute.");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
错误是:
从表中获取所有行! java.sql.SQLException:数据源拒绝建立连接,来自服务器的消息:“主机'192.168.1.249'不允许连接到此MySQL服务器” 在com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:650) 在com.mysql.jdbc.Connection.createNewIO(Connection.java:1808) 在com.mysql.jdbc.Connection。(Connection.java:452) 在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411) 在java.sql.DriverManager.getConnection(DriverManager.java:582) 在java.sql.DriverManager.getConnection(DriverManager.java:185) 在com.retrieve.retrieve.main(retrieve.java:15)
答案 0 :(得分:0)
使用MySQL服务器,您需要为用户添加权限,以便能够从指定的IP访问您的数据库
从mysql控制台执行以下查询
GRANT ALL ON YOUR_DB.* TO 'root'@'192.168.1.249';
答案 1 :(得分:0)
在你的mysql服务器上创建用户'login'@'192.168.1.249'。
mysql从'name'(此处 - 您指定的登录名)和'host'(用户连接到服务器的地址)构建用户。您可以使用'%'char来描述'所有主机'。
考虑阅读本节文档:
http://dev.mysql.com/doc/refman/5.1/en/user-account-management.html
答案 2 :(得分:0)
尝试关闭所有资源,例如Statment
,ResultSet
个对象等。另外,正如@Jigar提到的那样,也向用户授予权限。
答案 3 :(得分:0)
Please check your port .If you changed your port number ,you got this error like
&#34; com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败&#34;