2012-10-14 18 views
3

我在另一臺電腦上有這個數據庫,我想通過使用像這樣的連接字符串來訪問它。如何在另一臺使用java和jdbc和sql的計算機上成功訪問數據庫?

Class.forName("com.mysql.jdbc.Driver"); 
     con = DriverManager.getConnection("jdbc:mysql://192.168.0.1/dbtina","root","1234"); 

「dbtina」是我們的數據庫。 「1234」是我們的密碼。並且我們已經配置了我們的ip,因爲我們使用的是有線連接(點對點)。

Exception: Communications link failure 

Last packet sent to the server was 0 ms ago.* 

我該如何解決這個問題?

回答

2

打開數據庫所在計算機的防火牆上的端口。

+0

怎麼做呢XD – Weddy

+1

嗯,首先,你能提供一些細節.. 。您在計算機上使用數據庫的操作系統是什麼?你在那裏使用什麼樣的防火牆或防病毒軟件?根據您的評論判斷,我還想問問計算機運行的計算機的IP是什麼... – ppeterka

+0

昨天我們做到了。謝謝你pperterka:D – Weddy

1

您必須在數據庫計算機上配置防火牆,以允許來自特定端口上不同計算機的通信。

+1

如何做呢XD – Weddy

3

只需禁用防火牆。或打開3306端口爲MySQL 使用這個鏈接,如果它甚至這樣做,你可能會得到安全異常後幫助

manually open port

。使用mysql GRANT查詢來授予權限。

mysql>在db_base。上授予所有特權。* TO db_user @'ip_address'IDENTIFIED BY'db_passwd';

grant example

-1

相應更改代碼:

Class.forName("com.mysql.jdbc.Driver");   
con = DriverManager.getConnection("jdbc:mysql://192.168.0.1:3306/dbtina", 
    "root","1234"); 
1
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 
相關問題