我已经在我 friend 电脑上的 wamp 上创建了一个名为 test(表名演示)的数据库。我可以使用我 friend 电脑的 ip 地址从我的浏览器中看到这个表。但我想使用我电脑上的 Java 代码将数据插入和检索到这个数据库(测试)。我试过了,但 netbeans 显示错误消息。
here is my code :
package ashdemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Ashdemo {
public static void main(String args[]) throws InstantiationException, IllegalAccessException
{
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://friend's_ipaddress:3306/test","username","password
");
Statement stmt=con.createStatement();
stmt.executeUpdate("Insert into demo values(1,'abc','nagpur')");
//ResultSet rs= stmt.executeQuery("Select name from demo where id=1");
//rs.next();
//String name= rs.getString("name");
//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);
}
}
}
error message is :
errorjava.sql.SQLException: Access denied for user 'username'@'myipaddress' (using password: YES)
最佳答案
您需要设置 mysql 以允许特定用户的远程连接。默认语法是:
grant <permission> on <database> to <user>@<location> identified by <password>
所以在这里你必须使用-
grant all on test.* to 'username'@'your_ipaddress' identified by 'password'
在 MySQL 命令提示符下运行此命令。
这将允许用户名使用该密码从您的IP连接并授予对数据库中所有表的所有权限- test
.
- 要允许任何用户从任何 IP 地址连接并使用任何数据库中的所有表,请使用以下语法-
grant all on *.* to '%'@'%' identified by 'password'
最后你必须使用下面的命令-
FLUSH PRIVILEGES;
重新加载所有权限。
关于java - 无法插入和检索mysql服务器数据库信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231238/