iT邦幫忙

0

該如何讓android遠端連上mysql?

  • 分享至 

  • xImage

我在家ide跑沒問題...app載在手機在家用wifi沒問題...但是當外出了手機不吃家裡網路了就不能了...我使用xampp去mysql...我在mysql創建使用者帳號...給予他所有權限也不行...因為我不知業界情況...只是自己做side project

在win10裡我在防火牆設定的輸入規則裡新增一個3306也不行.似乎只有當下存在.我在重新進入防火牆設定該設定的3306就不見了...該如何讓app可以遠端連上mysql呢?
當然如果關閉防火牆可能這方式就不安全了吧?

看更多先前的討論...收起先前的討論...
天黑 iT邦研究生 5 級 ‧ 2022-02-14 14:39:13 檢舉
請問你是用的是實體IP嗎?
影響原因不外乎就是
1. IP
2. 權限

別急著混到 android 內,先試著用其他管理工具連線你建立的帳號,能成功在一步一步排查是什麼問題
rabbit iT邦新手 4 級 ‧ 2022-02-14 19:07:01 檢舉
我有用postman去用post可以新增資料到mysql這樣算是可以嗎?
天黑 iT邦研究生 5 級 ‧ 2022-02-15 09:00:20 檢舉
看起來是私有IP了192.168.xxx,如果只是要展示用沒有需要有資料共用性,app可以使用 local db,那如果有要共用所有安裝app的裝置都需要,可以考慮下面大大提供的作法API,但有一個前提是API需要有對外IP,這樣才可以外部連線
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
EvanKuo
iT邦新手 5 級 ‧ 2022-02-14 15:02:59

建議直接把後台轉到firebase上
暫時不考慮xampp

rabbit iT邦新手 4 級 ‧ 2022-02-14 18:56:59 檢舉

firenase有用過成功.現在試mysql

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-02-14 16:09:14

app載在手機在家用wifi沒問題.

MySQL server 是什麼 IP?
1.localhost
2.127.0.0.1
3.192.168.0.x
4.10.10.1.x
5.其他(請說明)

不看答案純猜測
你的 MySQL 沒有實體IP
也就是「無法從外面連到那部電腦」

看更多先前的回應...收起先前的回應...
rabbit iT邦新手 4 級 ‧ 2022-02-14 18:56:24 檢舉

我是用192.168.x.xx..網路就中華電信普通的光世代...所以這樣不行?

用我公司的電話做比喻
公司代表號是 28825252,我的分機號碼是 3939889,隔壁座位分機號碼是 3939886
在公司裡面,3939889 可以打 3939886 通話(連線)
離開公司到外面,打 3939889 或 3939886 都不會通

你可能會覺得 28825252 和 3939889 很像,分不出外線或內線
所以英明的資訊界前輩規定了
192.168.x.x為「內線」專用號碼

rabbit iT邦新手 4 級 ‧ 2022-02-15 15:07:10 檢舉

感謝您的說明..我一直以為ip就家裡住址..就一個住址..原來有內外分別

Cyril iT邦新手 5 級 ‧ 2022-02-16 01:22:22 檢舉

192.168.x.xx 這種 IP 是所謂的虛擬 IP 只有區網可以存取, 有能力存取網際網路的叫實體IP, 下面是其中一個可以查你的實體 IP 的網站
https://myip.briian.com/

rabbit iT邦新手 4 級 ‧ 2022-02-16 09:25:00 檢舉

謝謝你(Cyril)的說明

1

第一猜測:你用了192.168.X.X做外連處理。(這是內網IP,不是給你外連用的)
第二猜測:你的外連權限沒設定。(如果你的帳號名是 user@localhost)
第三猜測:你是用root帳號連結。(一般root帳號會強制不能外連,就算你設定了外連)

以上看有哪一個中標了。

看更多先前的回應...收起先前的回應...
rabbit iT邦新手 4 級 ‧ 2022-02-14 19:02:07 檢舉

有新建立使用者帳號不是root...因在家我手機用wifi+192.168.x.xx可以.所以是用這樣去外面
test1 192.168.x.xx 是 ALL PRIVILEGES(使用者名稱,主機名稱,密碼,全域權限)...我看phpmyadmin是這樣...這樣算是沒開權限?

果然被我猜中。
你並不是啥權限沒開。

192.168.x.x這種IP是內網用的IP。
只有使用你那台WIFI的機器才能使用這個IP連進去。
理所當然的。你手機連那WIFI。當然可以連的上。
但那是內網連結。
你可以將手機關掉WIFI試試,直接使用3G網路。
你看還能不能連上。

你要先找到你的對外IP。用你的對外IP連才行
雖然,也需要你對那台AP做一下設定才能正常連到你的機器上就是了。

另外提醒你一下。如果做出來的東西是自用的。那就算了。
但如果是要給外來人使用。
從APP上直接連結MSYQL是一件找死的行為。

rabbit iT邦新手 4 級 ‧ 2022-02-14 21:54:12 檢舉

所以不會有人做這樣的方式連接mysql,因為不安全嗎?

是的。一般都是透過API的方式拿資料,而不是直接將連結MYSQL的帳密寫在上面。

rabbit iT邦新手 4 級 ‧ 2022-02-15 15:03:19 檢舉

請教一下星空大..如果我是android呼叫insert.php代碼...insert.php再去mysql新增資料..這樣insert.php就是您所謂的透過api方式?就安全?

安不安全我不知道。
但至少降低直接連資料庫的風險就是了。
剩下來的就得看你是怎麼去傳值及程式處理的安全性了。

rabbit iT邦新手 4 級 ‧ 2022-02-16 09:26:06 檢舉

謝謝您的解說..謝謝

我要發表回答

立即登入回答