来自远程系统的 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 连接错误的主要内容,如果未能解决你的问题,请参考以下文章
使用本地 phpMyAdmin 通过 Xampp 连接远程数据库
来自 php 表单的问题/错误,用于使用 php-mailer 库通过本地主机 Xampp 发送电子邮件