我們有一個內部MySQL數據庫,我們的客戶服務部門用來做報價,並在我們的網站上有一個外部MySQL數據庫,我們的客戶用它來做報價。我有一個我寫過的PHP報告,它提供了來自內部數據庫的信息。現在我想修改報告以包含來自外部數據庫的數據。我需要通過使用SSH連接來連接到外部數據庫。我一直在研究使用cURL或SSH2,但我不確定是否有正確的方法來做到這一點。有沒有人曾經在網絡服務器上查詢過SSH MySQL數據庫,或者有人知道我需要做什麼才能使其工作?謝謝你提供的所有幫助!通過SSH查詢遠程網絡服務器上的MySQL數據庫
回答
我實際上使用名爲「Sequel Pro」的MySQL GUI客戶端,它提供了通過SSH連接連接到MySQL的選項。這是完全可行的,但如果您可以選擇無需連接到數據庫(例如,您可以從主機的「外部」連接到它),您應該更喜歡這一點。
我設想你可以通過SSH查詢你的數據庫的最簡單的方法是使用SSH端口轉發,所以你會產生一個進程ssh [email protected] -L3306:localhost:3306
,然後你的MySQL連接器連接到本地主機。
SSH的-L
參數指示它執行本地端口轉發,因此SSH將在本地端口上偵聽,並將其收到的內容直接從另一端轉發到指定的遠程主機/端口。顯然我的例子使用兩端的端口3306,但可以根據需要進行更改(RTM有更多關於此的)
是的,你可以通過SSH從bash查詢mysql,但這不是最好的和可擴展的方式。最好的解決方案是在生產服務器上創建一個REST Web服務。然後,您的內部系統將通過驗證來查詢該遠程服務。
任何想法如何做到這一點? –
也許有無數的這樣做,新舊方法,但是我做了一個快速的谷歌一些簡單的開始,我得到這個:http://robertobartolome.com/a-simple-web-service-using- php-json-and-mysql/https://github.com/memaker/webservice-php-json,代碼只是一個例子,讓你開始。 –
您設置從可用的端口號隧道內的本地服務器到mysql端口的遠程服務器上:
ssh -L 3307:localhost:3306 [email protected]
,創建一個隧道的本地系統監聽3307端口,連接到端口3306(MySQL)在遠程服務器上。
然後指出你的PHP代碼連接到3307端口,而不是3306,它會在遠程服務器上隧道連接到mysql。
- 1. 從遠程服務查詢數據庫
- 2. 如何通過ssh將mysql數據庫部署到服務器
- 3. 如何通過Python遠程訪問Bluehost服務器上的MySQL數據庫
- 4. 通過鏈接服務器在遠程服務器上創建數據庫
- 5. 不能通過ssh推送遠程服務器上的Git
- 6. 將數據庫從本地服務器傳輸到遠程網絡服務器?
- 7. 通過到數據庫的遠程連接進行Mysql查詢
- 8. 通過網絡服務器
- 9. 通過Squid代理服務器繞過MySQL數據庫的遠程連接
- 10. 通過ssh在遠程服務器上覆制文件
- 11. 無法通過ssh在遠程服務器上啓動屏幕
- 12. 通過ssh在遠程服務器上執行puppet文件
- 13. 如何通過SSH在遠程服務器上運行Web服務器腳本?
- 14. 通過SSH連接遠程MySQL數據庫工作臺
- 15. 通過SSH休眠遠程MySQL數據庫
- 16. 使用java通過ssh連接到遠程mysql數據庫
- 17. 連接到遠程服務器上託管的MySQL數據庫
- 18. 如何備份遠程服務器上的MySQL數據庫
- 19. Spring數據JPA與ssh隧道到遠程MySQL服務器
- 20. 使用Ruby on Rails和SSH訪問遠程服務器上的遠程MySQL數據庫
- 21. 未能通過Ubuntu的服務器連接到遠程MySQL數據庫
- 22. 在遠程服務器上部署MySQL數據庫
- 23. SSH連接到遠程數據庫服務器
- 24. MySql合併來自遠程數據庫服務器的數據
- 25. 將mysql數據庫上傳到web服務器,即遠程服務器
- 26. 解析服務器通過SSL連接到遠程數據庫
- 27. 無法通過遠程連接訪問數據庫服務器
- 28. 通過RMySQL連接到sequel pro數據庫遠程服務器
- 29. 數據庫加入網絡服務器
- 30. 在腳本中通過SSH運行遠程服務器上的函數
你能連接到遠程服務器的mysql端口嗎?如果是這樣,您可以像連接其他任何mysql服務器一樣連接到他們的服務器。 –
這就是我想我需要在PHP中使用SSH2代碼。我之前沒有這樣做過,所以我不確定它是否會起作用。我想,在我花費太多時間計算出SSH2是否應該走的道路之前,我會先看看是否有人做過這樣的事情,並指出我的方向。我已經開始研究cURL,但從我所看到的,我認爲這不會做我需要的。到目前爲止,我想我必須嘗試使用SSH2連接到數據庫,然後查看連接後是否可以執行查詢。 – kheugel
MySQL的連接協議確實允許SSL加密。除非你不想將MySQL端口暴露給世界,否則不需要使用SSH和/或隧道技術:http://dev.mysql.com/doc/refman/5.0/en/secure-using- ssl.html –