我使用phpmyadmin(wamp)创建了一个mysql数据库。我可以使用我的电脑的IP地址从其他电脑看到数据库。但是,当我运行java代码来从数据库中检索条目时,它会给出错误。我们已经禁用了主机pc的防火墙。 这是我的代码:
/*
- 要更改此模板,请选择工具|模板*并打开 编辑器中的模板。 * / package wamp;
import java.sql.Connection; import java.sql.DriverManager;进口 java.sql.ResultSet中; import java.sql.SQLException;进口 java.sql.Statement中;
/ ** * * @author user * / 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
答案 0 :(得分:2)
这是因为您没有为您的其他PC提供连接MySQL数据库的正确权限,如果您在谷歌上搜索错误,您会找到答案:
首先ping用户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;
答案 1 :(得分:1)
这是因为您没有授予远程访问权限。要从远程系统访问mysql,您必须授予权限。 尝试以下方式
GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;
以上将允许所有人访问,但如果您想要访问家庭网络的某些特定IP,请尝试这种方式
GRANT ALL ON *.* to '%'@'192.168.%' WITH GRANT OPTION;
以下链接可以帮助您
答案 2 :(得分:1)
输入
GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;
在你的phpmyadmin sql界面
答案 3 :(得分:0)
这是因为你没有在同一网络中授予对其他电脑的访问权限:
GRANT ALL ON *.* to '%'@'192.168.%' WITH GRANT OPTION;
类似的问题链接:How to access MySQL from a remote computer (not localhost)?