"Server has gone away" 迁移/升级到 XAMPP 后
"Server has gone away" after migration / upgrade to XAMPP
迁移 MySQL 数据库后出现多个错误。我真的搬家了:
- 从台式机到新笔记本电脑
- 从 Windows 7 到 Windows 10
- 从独立的 Apache / MySQL / PHP 到 XAMPP...
- ...所以我也从 MySQL 转移到了 MariaDB。
我用 MYSQL_DUMP 迁移了数据库,并用 phpMyAdmin 和 MYSQL_UPGRADE 引入了数据库。在 phpMyAdmin 中一切正常 - 所有模式、数据库、字段、数据等都完好无损 - 但是当我 运行 任何类型的 SQL 查询时它都会失败。
我收到的错误消息:
Warning: mysqli_connect(): MySQL server has gone away in C:\xampp\htdocs\Test.php on line 5
Warning: mysqli_connect(): Error while reading greeting packet. PID=6908 in C:\xampp\htdocs\Test.php on line 5
Warning: mysqli_connect(): (HY000/2006): MySQL server has gone away in C:\xampp\htdocs\Test.php on line 5
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Test.php on line 5
产生此错误的脚本是:
<?php
$mysqli = mysqli_connect("localhost:8080", "xxxx", "xxxx", "xxxx");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else
echo "worked";
?>
与之前安装的唯一编码差异是由于 Apache 端口上的冲突而引入了 8080 - 一切(包括更复杂的查询,老实说!)在移动一切之前都运行良好。
我在谷歌上搜索了很多(不仅仅是这个网站)并尝试了一些调整 my.ini - 到目前为止,他们只是让错误出现的速度变慢了!不过很高兴测试更多。
有什么建议吗?
谢谢大家,约翰。
localhost
未包含在 %
中。添加一个类似的GRANT ... TO xxxxx@localhost ...;
如果您遇到以下错误或问题,请按照上述解决方案进行操作。
错误:
警告:mysqli_connect():MySQL 服务器已消失
警告:mysqli_connect():读取问候包时出错。 PID=3528
警告:mysqli_connect(): (HY000/2006): MySQL 服务器已经消失
解决方案一:
使用 127.0.0.1 而不是本地主机。不要使用 127.0.0.1 之后的任何端口号。
方案二:
检查位于的主机文件
C:\Windows\System32\drivers\etc
并删除文件中的任何本地主机或 127.0.0.1 条目并保存。
您可以使用任何 HostEditor 程序编辑此文件。
迁移 MySQL 数据库后出现多个错误。我真的搬家了:
- 从台式机到新笔记本电脑
- 从 Windows 7 到 Windows 10
- 从独立的 Apache / MySQL / PHP 到 XAMPP...
- ...所以我也从 MySQL 转移到了 MariaDB。
我用 MYSQL_DUMP 迁移了数据库,并用 phpMyAdmin 和 MYSQL_UPGRADE 引入了数据库。在 phpMyAdmin 中一切正常 - 所有模式、数据库、字段、数据等都完好无损 - 但是当我 运行 任何类型的 SQL 查询时它都会失败。
我收到的错误消息:
Warning: mysqli_connect(): MySQL server has gone away in C:\xampp\htdocs\Test.php on line 5
Warning: mysqli_connect(): Error while reading greeting packet. PID=6908 in C:\xampp\htdocs\Test.php on line 5
Warning: mysqli_connect(): (HY000/2006): MySQL server has gone away in C:\xampp\htdocs\Test.php on line 5
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Test.php on line 5
产生此错误的脚本是:
<?php
$mysqli = mysqli_connect("localhost:8080", "xxxx", "xxxx", "xxxx");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else
echo "worked";
?>
与之前安装的唯一编码差异是由于 Apache 端口上的冲突而引入了 8080 - 一切(包括更复杂的查询,老实说!)在移动一切之前都运行良好。
我在谷歌上搜索了很多(不仅仅是这个网站)并尝试了一些调整 my.ini - 到目前为止,他们只是让错误出现的速度变慢了!不过很高兴测试更多。
有什么建议吗?
谢谢大家,约翰。
localhost
未包含在 %
中。添加一个类似的GRANT ... TO xxxxx@localhost ...;
如果您遇到以下错误或问题,请按照上述解决方案进行操作。
错误:
警告:mysqli_connect():MySQL 服务器已消失
警告:mysqli_connect():读取问候包时出错。 PID=3528
警告:mysqli_connect(): (HY000/2006): MySQL 服务器已经消失
解决方案一: 使用 127.0.0.1 而不是本地主机。不要使用 127.0.0.1 之后的任何端口号。
方案二:
检查位于的主机文件
C:\Windows\System32\drivers\etc
并删除文件中的任何本地主机或 127.0.0.1 条目并保存。
您可以使用任何 HostEditor 程序编辑此文件。