事情是這樣的
我在本端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
外網域連接的設定方式如下
先假設如下
你的電腦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";
這樣才可以對外請求。
但這也有例外條件的。
如上面 窮嘶發發發 大說的,主機商本身就有做防護外連的機制。
雖然大多數而言,很少有主機商會這樣做就是了。
另外一種就是防火牆的因素了。