更改主机:简单连接测试脚本抛出HY000/2002

问题描述:

我有这个简单的连接脚本,我用了一段时间,它对我来说很好。更改主机:简单连接测试脚本抛出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

我想你已经用相同的凭据重新创建了用户帐户? –

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

也许你包含一个具有数据库配置的文件? –