【问题标题】:Java Database mySQL access deniedJava 数据库 mySQL 访问被拒绝
【发布时间】:2014-01-21 17:14:15
【问题描述】:

所以我正在尝试连接到我的数据库并显示表中的项目。 我得到的错误是: SQL Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'Bob'@'%' to database 'TEST'

这是否正确连接,如果是,是凭据错误的错误吗?如果他们错了,它是如何连接的?谢谢

try 
     {  
        Class.forName("com.mysql.jdbc.Driver");        
        String url = "jdbc:mysql://THISISTHEHOSTNAME";
        String username = "Bob";
        String password = "password";
        Connection connection = DriverManager.getConnection(url, username, password);
         Statement stmt = null;
        ResultSet rs = null;
        //SQL query command
        String SQL = "SELECT * FROM TEST";
        stmt = connection.createStatement();
        rs = stmt.executeQuery(SQL);
        while (rs.next())
        {
            System.out.println(rs.getString("ProductName") + " : " + rs.getString("UnitPrice"));
        }
     } 
     catch (SQLException e) 
     {
        System.out.println("SQL Exception: "+ e.toString());
     } 
     catch (ClassNotFoundException cE) 
     {
        System.out.println("Class Not Found Exception: "+ cE.toString());
     }

【问题讨论】:

  • 是的,它正在连接,但它没有登录,因为凭据错误。

标签: java mysql sql database


【解决方案1】:

您需要为连接到 mysql 数据库的用户授予适当的权限。

您收到的消息是通知您,虽然您的用户能够连接到数据库服务器,但不允许访问数据库 TEST。

在 mysql 控制台中运行以下命令将授予此类访问权限:

GRANT ALL ON TEST.* TO 'BOB'@'%'

这是非常宽松的,您应该记住,db 用户应该拥有尽可能少的权限,并且被限制在最小范围的主机中。

【讨论】:

  • MySQL 说:文档 #1044 - 用户 'BOB'@'%' 拒绝访问数据库 'TEST'
【解决方案2】:

我使用 ShowIP Firefox 插件并改用 IP 并没有收到任何错误,但我想知道是否应该返回访问权限,我目前无法找到答案。

【讨论】:

    【解决方案3】:

    这里有一些事情要做:

    1. 检查您的用户名和密码是否正确。
    2. 您是否将用户名添加到正确的数据库中? (这需要在 CPanel SQL 中完成)
    3. 您是否允许您的数据库从您的 IP 地址获得连接访问权限? (这也需要在 CPanel SQL 中完成)

    【讨论】:

    • 投反对票,因为这不能回答问题。
    • 我使用的是godaddy数据库,用户名和密码是我创建时提供的。
    • 您是否将用户名放入数据库并赋予其权限?像这样:website-in-a-weekend.net/wp-content/uploads/2010/03/…
    • 没有为数据库创建用户的选项。只是登录凭据?
    • 我不知道如何在不将其添加到数据库的情况下授予用户权限(我从未使用过 godaddy 数据库)。请看 waltzZiss 的建议,我觉得他是对的。
    【解决方案4】:

    在mysql中创建一个新用户检查所有全局权限>进入netbeans中的服务>数据库>本地主机的mysql服务器>右键单击连接并填写用户名密码

    这对我有用

    【讨论】:

    • 创建一个拥有所有权限的新用户并将其与 netbeans 连接
    【解决方案5】:

    请尝试以下代码:

    import java.sql.*;
    public class InsertPrepared {
    
       public static void main(String[] args)
       {
          try
          {
             Class.forName("com.mysql.jdbc.Driver");
             Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306//test","sanjib","");
             PreparedStatement stmt=con.prepareStatement("insert into employee values(???)");
    
             stmt.setInt(1,101);
             stmt.setString(2,"Sampa");
    
             int i=stmt.executeUpdate();
             System.out.println(i+"Records is inserted");
             con.close();
          }
    
          catch(Exception e)
          {
             System.out.println(e);
          }
    
       }
    }
    

    【讨论】:

    • 当我运行时我没有得到正确的答案然后 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database '/test' show and数据库中没有 uodate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多