發問時間: 電腦與網際網路程式設計 · 1 0 年前

php遠端連結mysql不要用localhost

請問如果hostname不使用localhost而要用ip

在mysql的環境變數需要做什麼設定嗎?

我有開一個帳號主機設定是可以從任何主機登入(%)

假設我的php放在A主機,mysql放在B主機

想從A主機讀取B主機的資料可以嗎?該怎麼做?

PHP是4版,主機是LINUX

已更新項目:

會出現以下錯誤訊息

Lost connection to MySQL server at 'reading initial communication packet', system error: 111

2 個已更新項目:

確定ping的到server

但鳥哥那篇文章我有點看不懂耶

我看了一下那兩個檔

都沒有設定任何東西

這代表所有ip都可以還是都不可以進入?

因為我們網站有很多客戶在用,像是ftp之類的

如果我做了設定他們會不會進不來?

3 個已更新項目:

Arvin你說的方法我試了一樣不行

還是有一樣的錯誤

4 個已更新項目:

我是要從公司的web server連到公司另一台MySQL Server

5 個已更新項目:

MySQL Server 可以連

webserver 在輸入完密碼後嗶一聲畫面就關了

6 個已更新項目:

不好意思我以為我的port有開

測了一下發現連線失敗@@

請問mysql的prot要怎麼開

3 個解答

評分
  • 1 0 年前
    最佳解答

    $MySQL_Host = "12.34.56.78";

    $MySQL_DB = "databasename";

    $MySQL_User = "user";

    $MySQL_Pswd = "pswd";

    $linksql = @mysql_connect($MySQL_Host,$MySQL_User,$MySQL_Pswd) or Die(mysql_error());

    mysql_select_db($MySQL_DB,$linksql);

    $sql = "select * from testtable";

    $result = mysql_query($sql,$linksql) or Die(mysql_error());

    while( $row = mysql_fetch_array($result) )

    {

    $data1 = $row[0];

    $data2 = $row[1];

    ...

    }

    2008-04-11 15:43:45 補充:

    先這樣試跑看看

    如果不行再看是否有防火牆擋住

    我經常這樣連

    2008-04-11 15:46:09 補充:

    mysql 主機要開放 3306 port

    可以開放給所有ip

    或是你的 web server 有固定ip的話

    就開放給那個ip就好了

    2008-04-11 16:54:58 補充:

    先確認 webserver 可以 ping 的到 mysql server

    然後參考這個看看

    http://linux.vbird.org/linux_basic/0560daemons.php...

    2008-04-12 00:13:42 補充:

    看你的情況伺服器應該沒有開啟TCP_Wrappers

    其實接下來的問題還蠻複雜的

    有很多的可能性

    先問一下你是想從家裡的 web server

    連線到公司的 MySQL Server 嗎

    2008-04-17 09:48:26 補充:

    先在 mysql server 開啟一個終端機輸入 mysql -u user -p

    user 打你 mysql 可用的帳號,例如 root

    看能不能連

    如果可以 web server 也暫時安裝個 mysql

    同樣試看看能不能連

    mysql -h 12.34.56.78 -u user -p

    -h 後面是打 mysql ip

    參考資料: 我, 我, 我, 鳥哥, 我, 我
  • 1 0 年前

    你先確定mysql的port有沒有開

    telnet 11.22.33.44 3306

    如顯示:無法開啟到主機的連線....等訊息

    應該就是mysql 主機並未開放...

    所以連不上

    個人的猜測

  • Arvin
    Lv 5
    1 0 年前

    修改 my.cnf

    在 [mysqld] 底下增加一行

    skip-name-resolve

    希望對您有所幫助

    2008-04-11 22:37:28 補充:

    修改完你有重新啟動MYSQL嗎?

    要重新啟動才會生效唷

    2008-04-12 20:43:33 補充:

    system error: 111 是指無法連線到MYSQL

    整個網路可能發生的問題非常的多, 請確認

    1. MYSQL確實有啟動 (ps -ax)

    2. MYSQL確認有提供USER從遠端登入的權限 --> USER%

    3. MYSQL 3306 PORT 有開 (telnet xx.xx.xx.xx 3306)

    4. 在 [mysqld] 底下增加一行

    bind xxx.xxx.xxx.xxx <-您的MYSQL IP位址

    5. 重新開機

    參考資料: 自己
還有問題?馬上發問,尋求解答。