【发布时间】:2015-03-01 08:09:03
【问题描述】:
我写了一个简单的 PHP 代码来连接 MySQL 服务器,如下所示
<?php
$username = "root";
$password = "Kepwd";
$hostname = "localhost:81";
//connection to the database
$dbhandle = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
但这会产生以下错误。我在 google 和 Stack Overflow 中发现了一些关于这个问题的主题。但这些对我没有帮助。
( ! ) Warning: mysqli_connect(): MySQL server has gone away in C:\wamp\www\SSDConsultingNew\inc\test.php on line 8
Call Stack
# Time Memory Function Location
1 0.0014 240936 {main}( ) ..\test.php:0
2 0.0014 241528 mysqli_connect ( ) ..\test.php:8
( ! ) Warning: mysqli_connect(): Error while reading greeting packet. PID=10612 in C:\wamp\www\SSDConsultingNew\inc\test.php on line 8
Call Stack
# Time Memory Function Location
1 0.0014 240936 {main}( ) ..\test.php:0
2 0.0014 241528 mysqli_connect ( ) ..\test.php:8
( ! ) Warning: mysqli_connect(): (HY000/2006): MySQL server has gone away in C:\wamp\www\SSDConsultingNew\inc\test.php on line 8
Call Stack
# Time Memory Function Location
1 0.0014 240936 {main}( ) ..\test.php:0
2 0.0014 241528 mysqli_connect ( ) ..\test.php:8
Unable to connect to MySQL
【问题讨论】:
-
您的主题行显示为“警告:mysql_connect():MySQL 服务器已消失”,其中包含
mysql_函数,而不是您问题中的其他内容,即mysqli_函数.这是你得到的实际错误吗? -
尝试不使用端口
$hostname = "localhost";- 您可能还有其他应用程序使用相同的端口。如果是这样,您将需要找出它是什么,或尝试端口 3306 -
您混淆了 IIS Web 服务器和 mysql 服务器。您需要通过外部 IIS 端口连接到本地主机以连接到 mysql 服务器做什么?您的 MySQL 端口在默认 3306 上运行,当您删除
localhost:81时,它可以解析地址。 -
超级老问题,但我只是遇到了这个问题,并不是因为上述任何事情。我使用 MySQL Workbench 创建用户,并选择 SHA-256 作为密码而不是标准密码……这导致在尝试连接到数据库时抛出此错误。也许有人会发现这条评论很有用,因为我花了 4 个小时才弄清楚。 ¯_(ツ)_/¯
-
@AndrewQuebe 谢谢!我用头撞了几个小时,直到我找到你的评论。我不得不回去重新配置 MySQL 8 社区版,甚至允许“标准”密码,但这样做就成功了。
标签: php mysql mysqli database-connection