当我尝试连接到我的数据库时,出现此错误:
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,托管和数据库上托管。答案 0 :(得分:12)
您的主机错误,您的端口错误,防火墙阻止了连接,或SQL服务器未运行。 111是“拒绝连接”。您可以尝试telnet
到SQL Server的主机和端口进行故障排除。如果可行,则代码会使主机或端口出错。
如果不起作用,请检查SQL服务器本身。如果它在那里工作,问题是网络。如果它在那里不起作用,则SQL服务器不运行。
答案 1 :(得分:3)
检查my.cnf文件。它可能允许localhost连接,但您的conf.php肯定会尝试连接到您的IP或127.0.0.1。尝试使用localhost,如果它有效并且您希望它以不同的方式运行,请在bind-address指令中编辑my.cnf文件(将其更改为您的IP或更改为127.0.0.1,或者注释该行,以便没有绑定)。
无论如何,当你使用“localhost”连接到mysql时,它使用套接字而不是TCP conn,因此它可能会失败,
答案 2 :(得分:1)
我有同样的错误。我试图从客户机192.168.0.47访问服务器192.168.0.4上的mysql数据库。当我进入/etc/mysql/my.cnf时,更改了bind-address = 192.168.0.4(并注释掉了127.0.0.1),并重新启动了机器,错误消息消失了。
答案 3 :(得分:0)
在我的情况下,我有datadir = / media / sdc1 / mysql并且没有安装磁盘。 我重新安装并重新启动mysql
答案 4 :(得分:0)
在我的情况下,磁盘已满。您必须删除任何不必要的文件。
如果你删除了那么你必须重新启动mysqld。
例如:sudo service mysqld restart