MySQL服务器连接失败,系统错误:111


Lost connection to MySQL server, system error: 111

当我尝试连接到我的数据库时,我得到这个错误:

Lost connection to MySQL server at 'reading initial communication packet', system error:111

这是我的PHP代码(这只是一个测试):

<?php
@session_start(); 
include(".conf.php");
print_r($conf);
$con = mysql_connect($conf['db_hostname'], $conf['db_username'], $conf['db_password']) or die (mysql_error());
mysql_select_db("aTableName", $con);
$prof = '000';
//$prof = $_GET['profile'];
$prof = addslashes(htmlentities($prof));
$result = "SELECT * FROM aTableName WHERE id = '$prof'";
$q = mysql_query($result, $con);
$qarr = mysql_fetch_array($q);
print_r($qarr); 
?>

任何帮助将不胜感激。我想不明白,这真的让我很困扰。谢谢你!

编辑:我在GoDaddy上托管,托管和数据库。

您的主机错误,您的端口错误,防火墙阻止了连接,或SQL服务器未运行。111表示"连接被拒绝"。您可以通过尝试将telnet连接到SQL服务器的主机和端口来进行故障排除。如果可以,说明你的代码把主机或端口搞错了。

如果不工作,检查SQL服务器本身。如果在那里行得通,问题就出在网络上。

查看my.cnf文件。它可能允许本地主机连接,但您的conf.php肯定会尝试连接到您的IP或127.0.0.1。尝试使用localhost,如果它可以工作,并且您希望它以不同的方式运行,请在bind-address指令中编辑my.cnf文件(可能将其更改为您的IP或127.0.0.1,或者注释行以不执行绑定)。

无论如何,当你用"localhost"连接到mysql时,它使用套接字而不是TCP conn,因此它可能会失败,

我也有同样的错误。我试图从客户端机器192.168.0.47访问服务器192.168.0.4上的mysql DB。当我进入/etc/mysql/my.cnf并更改bind-address = 192.168.0.4(并注释掉127.0.0.1),然后重新启动机器时,错误消息消失了。

在我的情况下,我有datadir=/media/sdc1/mysql,磁盘没有挂载。i重新挂载mysql

在我的情况下,磁盘已满。你必须删除所有不必要的文件。

如果你删除了,那么你必须重新启动mysqld。

例如:sudo service mysqld restart