2016-07-05 21 views
0

我有這個簡單的連接腳本,我用了一段時間,它對我來說很好。更改主機:簡單連接測試腳本拋出HY000/2002

<?php 
# mysql db constants DB_HOST, DB_USER, DB_PASS, DB_NAME 
const DB_HOST = 'xxx.xx.xxx.xx'; 
const DB_USER = 'myuser'; 
const DB_PASS = 'mypass'; 
const DB_NAME = 'myname'; 

$conn = new mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 

if ($conn->connect_errno) { 
    die("Connection failed: " .$conn->connect_errno. ": " .$conn->connect_error); 
} else { 
    echo "Connected successfully"; 
} 
?> 

我測試從本地主機我的連接(或者我們曾經有過的主機)和我所得到的頁面是:

連接成功

最近,我們改變了我們的主機(腳本生活)到domain.com當我在這臺主機上運行相同的測試腳本從上面我得到

警告:mysqli_connect():(HY000/2002):連接在 /hermes/bosnaweb04a/b2140/.../newdbtest.php 拒絕對線8

連接成功

從上面8號線:

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS); 

的主要問題是,雖然它告訴我「連接成功」,我想警告試圖告訴我什麼是搞砸了整個網站,因爲基本上沒有什麼可以工作(像登錄功能),雖然它在我的本地主機環境或我們的舊主機上工作。


注:我更新的代碼,以反映什麼,我已經試過最好的做法/版本。傑伊布蘭查德的答案迄今幫助協助這些更新,儘管目前的問題尚未解決。

+0

您的數據庫服務器的IP是否已更改? –

+0

@RoshanBhumbra我相應地更改了IP – 8protons

+0

我想你已經用相同的憑據重新創建了用戶帳戶? –

回答

4

mysqli_connect()需要四個參數成功連接:

const DB_HOST = 'xxx.xx.xxx.xx'; 
const DB_USER = 'myuser'; 
const DB_PASS = 'mypass'; 
const DB_NAME = 'myname'; 

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die(mysqli_error($conn)); 

我也將使用在你沒有得到一個連接的情況下退出的or die()(程序)方法。在我看來,你應該堅持使用程序或面向對象的方法,以保持清潔(不是你不能混合,它只會讓它更難遵循)。

此外,請檢查您的本地機器以及遠程機器上正在使用的MySQL端口號。這很容易解釋服務器之間的差異。

+0

任何想法它仍然連接,併成功插入我的本地主機,但不是新的域? – 8protons

+0

它可能是您的本地機器上的環境,但我必須在行動中看到這一點。我從來沒有見過沒有4個參數的成功連接。 –

+0

也許你包含一個具有數據庫配置的文件? –

相關問題