来自远程系统的 php 中的 XAMPP Mysql 连接错误

Posted

技术标签:

【中文标题】来自远程系统的 php 中的 XAMPP Mysql 连接错误【英文标题】:XAMPP Mysql connection error in php from remote system 【发布时间】:2016-02-22 23:16:35 【问题描述】:

我有 Windows 7 系统并在其中安装了 xampp。

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

但如果我尝试从 php 访问它,它会给我错误:

警告:mysqli::mysqli(): (HY000/2013): 在“读取初始通信包”时丢失与 MySQL 服务器的连接,系统错误: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 进入防火墙,但没有运气。已将所有 PRIVILEGES 授予主机 any (%) 的此用户。

我也尝试过使用 bind_address = 0.0.0.0,注释该行,以及 bind_address = X.X.X.X(我的 IP)。

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

我尝试使用以下命令从命令提示符访问:

mysql -h X.X.X.X -u root -p

这会报错:

警告:mysqli::mysqli(): (HY000/2003): 无法连接到 'X.X.X.X' (110) 上的 MySQL 服务器。

在连接字符串中使用同一系统中的 localhost 可以正常工作。

我哪里错了,我不知道。我已经搜索并尝试了所有可能的解决方案。 感谢您的帮助。

注意:现在我的 conf 文件与安装时相同。请不要将此问题标记为重复。

编辑:@Jay Blanchard,正如我也提到了该解决方案,在这种情况下系统错误:0,在我的情况下系统错误:20。感谢您的帮助。

【问题讨论】:

Lost connection to MySQL server at 'reading initial communication packet', system error: 0的可能重复 我对 telnet 不太熟悉,但是我尝试过使用此命令 "telnet x.x.x.x 3306" 。但我收到此消息 - “telnet:无法连接到远程主机:连接超时” 提示端口没有打开?你试过在线扫描3306的端口吗?这将确认端口是否打开? 已检查端口是否打开。实际上我已经为此使用了临时解决方案 - curl。 :) 【参考方案1】:

我的研究表明 sql 上的错误 20 意味着它是从没有被授予系统管理员权限的用户运行的。这限制了 sql server 的能力。解决此问题的方法是确保运行服务器的用户具有管理员权限。这可以通过具有管理员权限的 Windows 用户在控制面板中完成。

【讨论】:

以上是关于来自远程系统的 php 中的 XAMPP Mysql 连接错误的主要内容,如果未能解决你的问题,请参考以下文章

未发送来自 XAMPP 上 PHP 的邮件

来自本地主机的 XAMPP 和 PHP 邮件

使用本地 phpMyAdmin 通过 Xampp 连接远程数据库

来自 php 表单的问题/错误,用于使用 php-mailer 库通过本地主机 Xampp 发送电子邮件

Ubuntu中安装xampp,以及远程访问phpmyadmin遇到的问题

来自 xampp 的 Phpinfo() 不显示 php-redis 扩展 (UBUNTU 20.04)