0

我已经使用 phpmyadmin(wamp) 创建了一个 mysql 数据库。我可以使用我的电脑的 IP 地址从其他电脑查看数据库。但是,当我运行 java 代码从数据库中检索条目时,它会出错。我们已经禁用了主机电脑的防火墙。这是我的代码:

/*
  • 要更改此模板,请选择工具 | 模板 * 并在编辑器中打开模板。*/ 包装 wamp;

导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.ResultSet;导入java.sql.SQLException;导入 java.sql.Statement;

/** * * @author 用户 */ public class Wamp {

/**
 * @param args the command line arguments
 */

    // TODO code application logic here
    public static void main(String args[]) throws InstantiationException, IllegalAccessException
{
    try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
             Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.2:3306/test","root",""); 
                Statement stmt=con.createStatement();
              // stmt.executeUpdate("Insert into student values(1,'abc','nagpur')");
                ResultSet rs= stmt.executeQuery("Select names from sample where id=15");
                rs.next();
               String name= rs.getString("names");               
                System.out.println(name);
                System.out.println("DOne..");
               //INSERT INTO `student`(`id`, `name`, `address`) VALUES (1,'amol','nagpur');
            con.close();

          }
catch(ClassNotFoundException | SQLException e){
    System.out.println("error"+e);
}

}

}

这是错误消息:

errorjava.sql.SQLException: null, message from server: "Host 'user-PC.Home' is not allowed to connect to this MySQL server
4

4 回答 4

2

这是因为您没有为您的另一台 PC 提供连接 MySQL 数据库的正确权限,如果您在 google 上搜索错误,您会找到答案:

首先 ping user-PC 以获取他的 IP 地址:

Ping user-PC

然后登录到 MySQL 数据库并给出

用户 PC 的 IP 地址

连接 MySQL 数据库的权限:

use mysql
GRANT ALL ON *.* to root@'user-PC' IDENTIFIED BY 'your-root-password';
FLUSH PRIVILEGES;
于 2013-10-01T07:05:10.950 回答
1

类型

GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;

在你的 phpmyadmin sql 界面中

于 2013-10-02T06:59:51.317 回答
1

这是因为您没有授予远程访问权限。要从远程系统访问 mysql,您必须授予权限。试试以下方法

GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;

以上将提供对所有人的访问权限,但如果您想访问家庭网络的某些特定 IP,请尝试这种方式

 GRANT ALL ON *.* to '%'@'192.168.%' WITH GRANT OPTION;

以下链接可能对您有所帮助

链接1

链接2

于 2013-10-01T06:57:05.453 回答
0

这是因为您没有授予对相同网络中其他电脑的访问权限:

GRANT ALL ON *.* to '%'@'192.168.%' WITH GRANT OPTION;

类似的问题链接:How to access MySQL from a remote computer (not localhost)?

于 2013-10-01T06:59:35.727 回答