0

当我尝试使用 jdbc 连接 mysql 时,意味着它已成功连接到 localhost。但是我用我的 ip 地址替换了 localhost,这意味着 itz 未连接。

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:数据源拒绝建立连接,来自服务器的消息:com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:650) 上的“主机'192.168.1.249'不允许连接到此 MySQL 服务器” ) 在 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)

4

4 回答 4

0
Please check your port .If you changed your port number ,you got this error like 

“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障”

于 2014-11-13T10:00:07.970 回答
0

使用您的 MySQL 服务器,您需要为您的用户添加权限,以便能够从指定的 IP 访问您的数据库

从 mysql 控制台执行以下查询

GRANT ALL ON YOUR_DB.* TO 'root'@'192.168.1.249';
于 2012-05-29T05:01:30.100 回答
0

在您的 mysql 服务器上创建用户 'login'@'192.168.1.249'。

mysql 从“名称”(此处-您指定的登录名)和“主机”(用户连接到服务器的地址)构建用户。您可以使用“%”字符来描述“所有主机”。

考虑阅读这部分文档:

http://dev.mysql.com/doc/refman/5.1/en/user-account-management.html

于 2012-05-29T05:01:52.507 回答
0

尝试关闭所有资源,如StatmentResultSet对象等。此外,正如@Jigar 提到的,也向用户授予权限。

于 2012-05-29T05:03:47.410 回答