iT邦幫忙

0

請問 localhost 的 mysql 如何實現連到 linode 上的 mysql?

事情是這樣的
我在本端localhost有安裝XAMPP,他會安裝mysql和phpmyadmin
我在linode有手動安裝mysql跟phpmyadmin
這兩者是不同的數據庫
但我都是用同一個方式連接

$servername = "localhost";
  $username = "root";
  $password = "xxx";
  $mysqldb = "xxx_db";

所以當我瀏覽linode上的網頁時,他會連接到他自己的mysql
但是當我在localhost瀏覽網頁時,他會連接到xampp的mysql
我現在想做的是:

我想讓localhost連接mysql的時候會連接到linode的mysql而不是xampp的
這樣我該在linode和localhost上做些什麼設置才能實現?

我在linode的mysql增加使用者帳號了
主機名稱就是IP
只是還是不能。。。

mysqli::__construct(): (HY000/2002): Operation timed out in /xxx/xxx/xxx.php on line 17
Error: Operation timed out
參考 https://stackoverflow.com/questions/42051976/mysqli-connect-hy000-2002-connection-timed-out-on-hosting
你要做的事情就是問託管商,能不能允許外站連接,如果託管商不願意開放,就沒轍啊
你只能用 同步工具進行背景同步了

1 個回答

1
浩瀚星空
iT邦新手 2 級 ‧ 2018-05-16 17:08:58

外網域連接的設定方式如下

先假設如下
你的電腦ip是 123.123.123.123
而linode的ip是 101.101.101.101

首先,你得先到你的linode中的mysql建立一個新的使用者。
請勿直接使用root。因為大多數root是強制不容許除了本機localhost的其它的連結。
所以安全點,最好另建一個帳號。
主機名稱:就設定為123.123.123.123 或是先直接設定「%」任意主機。
先試可以連結到後再試改成主機ip。

這邊要先確定一件事。你自已的電腦中,是否採用dhcp的方式做連結。
如果是的話,建議先去任意可以查ip的網站,確定一下你的對外ip是多少。
而不要直接用你的本機內部ip如192.168.x.x。很多新手常犯這個問題。

之後,你的程式碼裏面,其中的

$servername = "localhost";

就要改成

$servername = "101.101.101.101";

這樣才可以對外請求。

但這也有例外條件的。
如上面 窮嘶發發發 大說的,主機商本身就有做防護外連的機制。
雖然大多數而言,很少有主機商會這樣做就是了。

另外一種就是防火牆的因素了。

asys0512 iT邦新手 2 級 ‧ 2018-05-18 11:38:32 檢舉

我是ubuntu,不知道怎麼設定才對?
我網路上有找到一些方式
只是都跟我實際狀況有差異
所以沒有辦法照做

其實你這樣回答,我也沒辦法再幫你更多了。
因為完全不清楚你目前的主機架構的模式是什麼。
我推測你可能是獨特性的資料庫操作。
等於是換個管理工具,你就不會操作了。

其實只要懂這道理就行了。想辦法去吸收明白上面說的。
我說的東西都只是基本簡單的道理。

我要發表回答

立即登入回答