我有一臺運行在bluehost機器上的數據庫服務器,並且我正在爲自己提供遠程IP訪問(通過我的IP地址)。用於MySQL連接的JDBC:適用於MySQL Workbench,不適用於JDBC
在我的客戶端機器上,我有MySQL Workbench,並且有一些Java代碼。 MySQL工作臺正在獲取連接,使用我希望的數據庫。通過驅動程序管理器連接,我無法指定我的數據庫,例如在URL中的端口號之後使用正斜槓,否則會出現連接錯誤。
我可以使用Workbench或驅動程序管理器獲得具有相同用戶標識和密碼的連接,但使用JDBC它不想讓我訪問相同的數據庫。
當我嘗試執行此(JDBC): "use database"
,我得到:
拒絕訪問用戶userid'@'184.11.22.%'數據庫 '數據庫'
的URL我現在用的就是
jdbc:mysql://(server-ip):(port)
如果我嘗試到它給人的訪問衝突的URL追加一個「/(數據庫)」。 MySQL Workbench沒有獲得任何其他特殊信息,但似乎與指定的默認模式連接。同一臺客戶機;相同的用戶名和密碼。 JDBC連接出了什麼問題?
Java代碼中添加:
db = DriverManager.getConnection(
"jdbc:mysql://74.220.192.113/advanfc7_atm?" +
"user=(myuserid&password=(mypwd)");
System.out.println("Connected.");
statement = db.createStatement();
statement.execute("use advanfc7_atm");
} catch (Exception e) {
System.out.println("InitDB() "+e.getMessage());
}
我也有3個參數做它的getConnection(),在第二和第三PARAMS分離用戶名和密碼。
,你指定的任何方式的用戶名和密碼?請顯示您正在使用的java代碼來嘗試連接到db –
我在上面添加了一個代碼片段。我總是指定userid和password,並且我在Workbench和Java中都使用相同的userid。 –
有了這兩個選項,你會得到「訪問被拒絕」消息嗎?如果是這樣,請在MySQL Workbench(或MySQL CLI)上檢查用戶可以使用的主機:'從mysql.user中選擇不同的主機,其中User ='myuserid''(您需要使用MySQL的'root'用戶運行此查詢) – Barranka