IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何在Microsoft Excel中‧利用ODBC Connector‧連到MySQL數據庫

01. 同事提及每星期也要登入公司網站,再用內裡功能,輸出報表去交功課,問到可否用Excel直接連到網站內存取資料。

02. IT當然是有圖有真相,叫同事登入公司網站,試一次如何去輸出報表。就看出那個網站,都是用WordPress這個CMS來建成的。那問題就變成,如何在外面網絡,存取網站內的MySQL數據庫(database)。

03. 第一樣要做的,就是如何令Excel能認出MySQL連線,那就先需要ODBC Connector。在MySQL網站搜尋一下,好快就找到那個『MySQL ODBC Connector』。

04. 在電腦上安裝ODBC Connector程式。




05. 建立ODBC連線。在Windows中打開『ODBC 資料來源 (64 位元)』程式。

06. 按『系統資料來源程式』欄位,再按『新增』。

07. 你會看到之前安裝的MySQL ODBC Driver出現在這裡。先按『MySQL ODBC 8.3 Unicode Driver』位置,再按『完成』。

08. 輸入『Data Source Name』、『TCP/IP Server』、『User』及『Password』。『Data Source Name』為一個你自己能識認的名稱,『TCP/IP Server』為MySQL數據庫的IP地址,埠位(port)如果你沒有更改過,MySQL預設的埠位就是3306。『User』及『Password』就是有權限登入MySQL的名稱及密碼。

09. 按『Test』位置,便會看到能否登入到MySQL伺服器。如果成功,恭喜你,你可以直接跳到第25項的Excel設置部份。

10. 但如果出現登入錯誤,就看看下面幾項能否幫到你解決問題。

11. 首先,確認防火牆是否已容許在下面連到MySQL伺服器,因我沒有在Ubuntu設置防火牆(ufw),所以我只需要設置伺服器的防火牆。

12. 因我是使用Linode的VM服務,所以以下示範是以Linode設置防火牆方式展示。先到『Firewalls』頁面,設置『Add an Inbound Rule』,加入能存取MySQL伺服器的來源IP地址,因為安全性考慮,一般我只會容許一粒IP地址能存取MySQL伺服器,如我今次就以家中路由器出去的IP地址作為測試設定。如在公司,可以到『canyouseeme.org』網站,找到你電腦連接出去的IP地址,正常這個IP地址是固定的。


13. 下一步用putty登入Linode的VM伺服器,對MySQL作出設定。

14. 到『/etc/mysql』資料夾,編輯『my.cnf』檔案。

15. 在最底位置,加入:

bind-address = 0.0.0.0

16. 同時檢查,如果出現這一行,就改為停用:

#bind-address = 127.0.0.1

17. 重新啟動MySQL服務。

18. 最後檢查MySQL用戶,是否有權限從外面連到MySQL數據庫內。登入phpMyAdmin管理程式。

19. 在『使用者帳號一覽』,就看到其實之前設置用戶,只有在『localhost』作出存取MySQL數據庫的權限。

20. 按『新增使用者帳號』,建立一個新帳號,要留意『主機名稱』,需要設定為『%』,以便此帳戶,能在localhost以外存取MySQL數據庫。

21. 在帳戶權限方面,如果用戶只需要讀取MySQL數據庫內容,就可以限制只給予『Select』權限。

22. 執行後,會看到新建立的帳戶。

23. 返回上面第8項的『ODBC 資料來源 (64 位元)』程式設定畫面。輸入新帳戶登入名稱及密碼,再按『Test』,應該會看到『Connection Successful』訊息,按『OK』建立資料來源。

24. 在『ODBC系統資料來源』會看到剛才建立的名稱,按『確定』。

25. 打開一個Excel檔案,選擇『資料』、『取得資料』、『從其他來源』、『從ODBC』。

26. 選擇剛剛建立的『ODBC』資料來源,按『確定』。

27. 便能看到MySQL數據內的資料。

28. 之後需要如何使用MySQL數據庫內相關資料,就由返同事自行處理了。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *