作者rex5207 (Sizukani)
看板AndroidDev
標題[問題] 透過SSH連線至Mysql拿資料
時間Mon Apr 13 23:41:54 2015
大家好,
目前我想要連線至SSH然後再連到Mysql得到database資料,
可是到
conn = DriverManager.getConnection (url, dbuserName, dbpassword);
這行就會發生exception
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server.
Caused by: java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 3306): connect failed: ECONNREFUSED (Connection refused)
試了很多方法結果都還是一樣,
目前是在Android Studio上用Java撰寫Android的App
請問有人發生過類似的情形嗎?
下面我簡化之後的code
http://codepad.org/kwwZv05Z
謝謝大家。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.189.152
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1428939717.A.F48.html
※ 編輯: rex5207 (1.169.189.152), 04/13/2015 23:43:18
1F:推 Deltaguita: (Connection refused) 127.0.0.1 <<<不太對吧 04/14 00:38
2F:→ Deltaguita: 確認一下你的mysql ip,電腦連跟手機連是不同概念喔 04/14 00:38
你好,這部分我也嘗試過,我把localhost換成真實的ip位置後,會有另一個exception
java.sql.SQLException:
Access denied for user 'root'@'180-177-106-21.dynamic.kbronet.com.tw'
(using password: YES)
※ 編輯: rex5207 (180.177.106.21), 04/14/2015 00:57:03
3F:推 asilzheng: 確認一下你的 mysql 主機防火牆有沒有開 04/14 01:06
剛剛看了一下,3306的port有打開,
我用sql workbench連SSH到Mysql也可以正確拿到database裡面的資料,
http://shaocian.blogspot.tw/2012/11/mysql.html
然後我剛剛看到了這篇,是不是要開放權限給root?
不過我用workbench連Mysql可以拿到資料.....
謝謝
※ 編輯: rex5207 (180.177.106.21), 04/14/2015 01:41:04
4F:→ honochung: 檢查一下這帳號權限是否允許any host的來源 04/15 08:32
5F:→ rex5207: 已經解決囉,root權限太大,降低權限就可以 04/15 17:56
6F:推 kiwatami: 用外部ip連資料庫嗎 要不要考慮寫api安全點 04/15 21:54
7F:推 kewang: 請寫API,DB應該在防火牆內不能直接存取 04/16 13:32
8F:→ rex5207: 謝謝大家,目前問題已經解決,因為急著Demo,所以先確保 04/16 15:55
9F:→ rex5207: 功能,之後才會用api去抓資料 04/16 15:55