iT邦幫忙

0

怎麼外部連線到XAMPP資料庫裡的資料

  • 分享至 

  • xImage

我有一部遠端電腦的固定ip(163.xxx.xxx.xxx),裡面我已經裝好XAMPP跟設好資料庫的資料了,想請問大家一下要怎麼從我自己的電腦或別人的電腦(ip 192.xxx.xxx.xxx)抓取到這資料庫的資料呢?是我的權限要設定甚麼嗎?
https://ithelp.ithome.com.tw/upload/images/20210529/20137625PoPIryOZVu.png
https://ithelp.ithome.com.tw/upload/images/20210529/20137625TFsZA4zqW1.png
下面程式碼我有放在遠端電腦的htdocs裡名稱是GetData.php,在遠端電腦裡搜尋http//ip位置/GetData.php是有資料顯示的

<?php
    $link = mysqli_connect("localhost", "admin1", "密碼", "a407630788");
    $link -> set_charset("UTF8"); // 設定語系避免亂碼
    // SQL 指令
    $result = $link -> query("SELECT * FROM `song`");
    while ($row = $result->fetch_assoc()) // 當該指令執行有回傳
    {
        $output[] = $row; // 就逐項將回傳的東西放到陣列中
    }
    // 將資料陣列轉成 Json 並顯示在網頁上,並要求不把中文編成 UNICODE
    print(json_encode($output, JSON_UNESCAPED_UNICODE));
    $link -> close(); // 關閉資料庫連線
?>

然後我要在自己的電腦裡用android studio抓資料時就不知道為甚麼抓不到了,url的地方是放http/163.xxx.xxxxxx/GetData.php,結果甚麼都沒顯示也沒說到底哪裡出錯了,我想至少出錯也要顯示像"Cleartext HTTP traffic to xxx not permitted"之類的,想請問大家這個要怎麼解決。

by2048 iT邦高手 1 級 ‧ 2021-05-30 07:36:33 檢舉
Xampp的資料庫通常只授權本機使用,您需開啟3306 port,還有授權資料庫給外部ip
maxmas iT邦新手 4 級 ‧ 2021-05-31 08:48:47 檢舉
不管你怎麼設定都沒有用,因為MySql資料庫只限定本機端連線,無法從外部連到你的電腦,這是先天上的限制。
如果你要從外部連到你的電腦的資料庫,要看你的用途而定,如果你是要讀取資料,你必須做一個中間層(俗稱API介面),例如 api.php,然後裡面按照你需要的各功能,自行定義不同的function去執行,而你外部的程式則去連線這個api.php,按照你丟給它的參數去執行相關的function取得資料,資料以JSON格式回傳,你接收到JSON資料後去解開處理就可以了。

不然你以為APP都是直接去連主機資料庫嗎? 那叫不設防,早就被駭客入侵了,APP就是透過主機上的API介面去獲得或傳回資料。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答