1

我在朋友的 pc 上的 wamp 上创建了一个名为 test(表名演示)的数据库。我可以使用我朋友的 pc 的 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:用户'username'@'myipaddress'的访问被拒绝(使用密码:是)

4

1 回答 1

2

您需要设置 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;

重新加载所有权限。

于 2013-10-07T18:21:38.783 回答