无法连接到数据库。不会停止加载

Posted

技术标签:

【中文标题】无法连接到数据库。不会停止加载【英文标题】:Cant connect to DB. Won't Stop Loading 【发布时间】:2016-05-13 09:11:40 【问题描述】:

我无法弄清楚为什么我没有连接到我的数据库。似乎它正在寻找主机但遇到身份验证问题或其他问题。我正在使用 xampp 和它提供的数据库。我的连接代码如下

<?php
$servername = 'localhost:1234';
$username = 'protech';
$password = '';
$dbname = 'protech';
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) 
    die("Connection failed: " . mysqli_connect_error());
else
    echo "Connected successfully";


    mysqli_close($conn);
    exit;
?>

如果您需要任何信息,我会在我的电脑旁快速回复。

我在等待一段时间后收到这些错误消息。

警告:mysqli::__construct(): MySQL server has gone away in C:\xampp\htdocs\protech_connect.php on line 9

警告:mysqli::__construct(): 读取问候包时出错。第 9 行 C:\xampp\htdocs\protech_connect.php 中的 PID=7764

警告:mysqli::__construct(): (HY000/2006): MySQL server has gone away in C:\xampp\htdocs\protech_connect.php on line 9

致命错误:C:\xampp\htdocs\protech_connect.php 第 9 行中的最大执行时间超过 30 秒

【问题讨论】:

您是否在非标准端口上运行?如果是这样,从主机中删除端口并作为第五个参数附加到 mysqli_connect。最好使用面向对象的方法 请提供您看到的错误信息 @RamRaider 我尝试了提供的代码但仍然无法正常工作。 Stephen Reindl 它只是不断加载它不会给出错误 这是在您的本地开发机器上还是在实时主机上?密码真的是空的吗?检查您的 php 错误日志以查看发生了什么。另外,mysql服务器是否设置为监听1234端口? 在 1 分钟内检查我的帖子编辑 【参考方案1】:

mySQL 的标准端口是 3306 - 因此,如果您真正使用 1234,请将其作为新参数附加到 db 连接构造函数。

    $dbhost =   'localhost';
    $dbuser =   'protech'; 
    $dbpwd  =   'xxx'; 
    $dbname =   'protech';
    $dbport =    1234;
    $conn   =   new mysqli( $dbhost, $dbuser, $dbpwd, $dbname, $dbport );

    if( $conn->connect_error ) exit( 'Bad foo: '.$conn->connect_error );
    else  /* do exciting things */ 

    $conn->close();

【讨论】:

【参考方案2】:

mysqli_connect() 函数不接受主机参数中的端口。您需要在另一个参数中添加端口号,如下所示:

$conn = mysqli_connect($servername, $username, $password, $dbname, $serverport);

函数文档:mysqli::__construct()

【讨论】:

我做到了,它仍然只是加载【参考方案3】:

如果您遇到以下错误或问题,请按照上述解决方案。

错误: 警告:mysqli_connect():MySQL 服务器已消失 警告:mysqli_connect():读取问候包时出错。 PID=3528 警告:mysqli_connect(): (HY000/2006): MySQL server has away

解决方案 1: 使用 127.0.0.1 而不是 localhost。不要使用 127.0.0.1 之后的任何端口号。

解决方案 2: 检查您的主机文件位于 C:\Windows\System32\drivers\etc 并删除文件中的任何 localhost 或 127.0.0.1 条目并保存。您可以使用任何 HostEditor 程序来编辑此文件。

【讨论】:

以上是关于无法连接到数据库。不会停止加载的主要内容,如果未能解决你的问题,请参考以下文章

远程调试:无法连接到远程虚拟机。连接超时

重启后,db2无法从客户端连接

无法连接到recaptcha服务

Websphere Application Server异常ADMC0016E:系统无法创建SOAP连接器以连接到主机端口

无法使用 MySQL 连接器/ODBC 将 Access DB 连接到 ODBC DSN

Rails 5 API - 即使无法建立与数据库的连接,也加载静态页面