2015-11-20 52 views
2

我有Windows 7系统,并安装在其中的xampp。从远程系统的PHP的XAMPP Mysql连接错误

我可以使用http://ipaddress:8080/phpmyadmin从远程系统访问的phpmyadmin。

但如果我尝试从PHP访问它,它给我的错误:

Warning: mysqli::mysqli(): (HY000/2013): Lost connection to MySQL server at 'reading initial communication packet', system error: 20

我的PHP代码是

define("HOST", "X.X.X.X"); 
define("PORT", "port");  // The host you want to connect to. 
define("USER", "user"); // The database username. 
define("PASSWORD", "password"); // The database password. 
define("DATABASE", "DBname"); // The database name. 

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE, PORT); 
// or without port $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); 

if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

我也曾尝试防火墙关闭,也允许端口3306到防火墙,但没有运气。将主机的所有权限授予此用户(%)。

我一直在使用bind_address = 0.0.0.0,评论线也试过,也bind_address = X.X.X.X(我的IP)。

也尝试将套接字类型从“MySQL”更改为“TCP/IP”。 skip-networking行也是默认的注释。

我已经尝试使用从命令迅速获得:

的MySQL -h XXXX -u根-p

这将使错误:

Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on 'X.X.X.X' (110).

在连接同一系统中使用本地主机字符串它工作正常。

我错了我无法弄清楚。我搜索并尝试了所有可能的解决方案。 感谢您的帮助。

注:而不是上面,现在我的conf文件一样在安装时。请不要将此问题标记为重复。

编辑:@Jay布兰查德,正如我刚才提到的是解决方案还,在这种情况下,系统错误:0,在我的情况下系统错误:20.感谢您的帮助。

+1

的可能的复制[在“读取初始通信分组”迷失连接到MySQL服务器,系统错误:0](http://stackoverflow.com/questions/5755819/lost-connection-to-mysql-server-at- read-initial-communication-packet-syste) –

+0

我对telnet不太熟悉,但是我试过使用这个命令“telnet xxxx 3306”。但是我收到这条消息 - “telnet:无法连接到远程主机:连接超时” – herr

+0

它表明端口未打开?您是否尝试过3306的在线端口扫描?这将确认该端口是否打开? –

回答

0

我的研究说,在SQL错误20意味着它是由未授予的系统管理员权限的用户跑去。这限制了sql server的能力。解决这个问题的方法是确保用户服务器正在从管理权限运行。这可以在具有管理权限的Windows用户的控制面板中完成。