![](/img/trans.png)
[英]Why would connecting to a MySQL database from Java get denied access?
[英]Java Database mySQL access denied
所以我試圖連接到我的數據庫並顯示表中的項目。 我得到的錯誤是:SQL異常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:拒絕用戶'Bob'@'%'訪問數據庫'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());
}
您需要為連接到mysql db的用戶授予適當的權限。
您收到的消息是通知您,當您的用戶能夠連接到數據庫服務器時,不允許訪問數據庫TEST。
在mysql控制台中運行以下命令將授予此類訪問權限:
GRANT ALL ON TEST.* TO 'BOB'@'%'
這是非常寬容的,您應該記住,db用戶應該具有盡可能少的權限,並且限制在最小范圍的主機上。
我使用ShowIP Firefox添加並使用IP而沒有得到任何錯誤,但我想知道是否應該返回訪問權限,我現在無法找到答案。
這里有幾件事要做:
在mysql中創建一個新用戶檢查所有全局權限>轉到netbeans中的服務>數據庫> localhost中的mysql服務器>右鍵單擊connect並填寫用戶名密碼
這項工作對我來說
請嘗試以下代碼:
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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.