2012-07-15 289 views
3

我想用php腳本登錄到遠程mysql數據庫。遠程mysql連接使用php

數據庫已打開以進行遠程連接。我可以使用我的家用PC上的mysql admininstrator prog或openoffice(ODBC)進行連接。

我曾嘗試在一些虛擬主機上的兩個不同帳戶上運行腳本,但彼此的數據庫不同,但沒有成功。

此外,腳本不會從這兩個帳戶中的一個連接到另一個帳戶上的數據庫。

似乎託管腳本的服務器上的PHP安裝程序將不允許連接到遠程數據庫,即使數據庫託管在同一個虛擬主機上。劇本剛剛超時。

任何想法

+5

我會聯繫您的虛擬主機。 – 2012-07-15 20:49:44

+0

從安全的角度來看,傳出的連接可能被阻止,請參閱Daniel White的評論。 – Arend 2012-07-15 20:51:43

回答

1

我不知道,但有個東西叫SQL safe mode。然後'localhost:3306'始終用作connect的服務器。

@Daniel是對的:你應該聯繫你的主機,或者檢查這個配置值是否在你的設置phpinfo

+0

我正在等待託管公司回到我身邊,但同時我檢查了sql.safe模式已關閉。 – Ian 2012-07-16 12:37:51

+0

workarround將在mysql服務器上的php中創建您自己的API。所以物理上包含你想連接的mysql服務器的服務器應該包含api代碼。從其他PHP服務器,您可以使用某種訪問令牌來進行Curl請求。 – RTB 2012-07-16 12:53:37

+0

@lan如果我的anwser幫助請接受它,以便其他人可以學習它。如果不是,我可以怎樣幫助你呢? – RTB 2012-07-19 11:26:55

2

的DB是開放的遠程連接

那麼你已經有了很大的安全問題。數據庫應該從不直接暴露在互聯網上。事實上,ISR是最近一個影響MySQL mariaDB和Percona的漏洞,很容易被利用。

您可以從家中連接建議沒有主機白名單,但僅僅是您無法連接的計算機存在路由問題,或者防火牆配置爲阻止此類訪問。這與PHP配置無關。

一旦禁用了對目標數據庫的遠程訪問,解決該問題的正確方法是使用VPN或SSL端口隧道。

+0

遠程連接實際上非常有用。不過,您可以將一個數據庫用於多個應用程序,但這非常有用。 當然這很危險,但如果你正確配置你的設置(白名單,首先),那麼你就沒有危險。 – 2012-07-15 22:22:13

+0

是的,它是危險的:http://www.theregister.co.uk/2012/06/11/mysql_mariadb_password_flaw/ – symcbean 2012-07-16 08:07:20

5

嘗試SQLyog

有了它,你可以使用HTTP Tunneling,你基本上覆制一個PHP文件到你的文件夾根目錄並使用數據庫憑證。

enter image description here

您也可以嘗試做同樣的用膩子http://oldsite.precedence.co.uk/nc/putty.html

我敢肯定有使用相同的隧道功能SQLyog的免費軟件。

+0

真的很好,很簡單! – PHP 2012-07-16 13:51:55