更改主机:简单连接测试脚本抛出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);
的主要问题是,虽然它告诉我“连接成功”,我想警告试图告诉我什么是搞砸了整个网站,因为基本上没有什么可以工作(像登录功能),虽然它在我的本地主机环境或我们的旧主机上工作。
注:我更新的代码,以反映什么,我已经试过最好的做法/版本。杰伊布兰查德的答案迄今帮助协助这些更新,尽管目前的问题尚未解决。
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端口号。这很容易解释服务器之间的差异。
任何想法它仍然连接,并成功插入我的本地主机,但不是新的域? – 8protons
它可能是您的本地机器上的环境,但我必须在行动中看到这一点。我从来没有见过没有4个参数的成功连接。 –
也许你包含一个具有数据库配置的文件? –
您的数据库服务器的IP是否已更改? –
@RoshanBhumbra我相应地更改了IP – 8protons
我想你已经用相同的凭据重新创建了用户帐户? –