【问题标题】:Connection With database Got an error Reading Communication Packets与数据库连接读取通信数据包时出错
【发布时间】:2020-02-04 03:51:57
【问题描述】:

我已经通过备份工具将数据库从 cPanel 迁移到 cPanel,但问题是每当我尝试连接到这个数据库时,例如使用这个 TEST php 代码

<?php
# Fill our vars and run on cli
# $ php -f db-connect-test.php
$dbname = 'imadoulh_test';
$dbuser = 'xxxxx';
$dbpass = 'xxxxx';
$dbhost = 'localhost';
$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysql_select_db($dbname) or die("Could not open the db '$dbname'");
$test_query = "SHOW TABLES FROM $dbname";
$result = mysql_query($test_query);
$tblCnt = 0;
while($tbl = mysql_fetch_array($result)) {
  $tblCnt++;
  #echo $tbl[0]."<br />\n";
}
if (!$tblCnt) {
  echo "There are no tables<br />\n";
} else {
  echo "There are $tblCnt tables<br />\n";
}

响应是 This page is not working with HTTP ERROR 500 MySQL 日志显示 读取通信数据包时出错

我确实尝试了很多方法来修复它,但不幸的是。 这是我尝试过的: 1.优化和修复表 2.在/etc/my.conf文件中添加一些代码如

     max_allowed_packet=2684354569944
     open_files_limit=10000
     default-storage-engine=MyISAM
     innodb_file_per_table=1
     default_authentication_plugin=mysql_native_password

处理这篇文章: https://dba.stackexchange.com/questions/19135/mysql-error-reading-communication-packets

【问题讨论】:

  • 您使用的是什么版本的 PHP? mysql_connect() 在 5.5.0 中被贬值,你应该切换到 mysqli_connect()
  • 嘿德米特里!感谢您的快速回答,我使用的是 PHP 7.2 (ea-php72)。您能否更具体地说明我应该使用哪个版本?
  • 你的版本没问题,你需要更新你的PHP代码。根据php manual pages mysql_connect 功能不再可用,你应该尝试类似example of mysqli_connect
  • 您可能需要考虑直接更改 MySQL 用户名和密码,因为将这些内容放在可公开访问的网站上并不是很明智..
  • 大家好,谢谢大家的回答,这个example of mysql_connect很有帮助,但是WordPress的wp-config.php还是有同样的问题...!

标签: php mysql database cpanel centos7


【解决方案1】:

来自 http 的错误 500 表示您的 Web 程序 - 您的 php 程序 - 尝试发送该页面失败。但是 500 绝对不能告诉我们为什么它失败了。所以,继续前进……您似乎遇到了 php 和 mysql 之间的通信错误。

我相信您问题中的关键词是from cPanel to cPanel。这表明您正在将应用程序从服务器迁移到服务器,甚至可能从托管供应商迁移到托管供应商。

您已将 MySQL 数据从备份导入到具有不同 IP 地址的新服务器上。因此,您现在有两个不同的数据库实例。而且,您的 php 程序可能有两个不同的实例。

所以现在您正在解决这些问题:

  • 我的新 php 代码可以与我的新数据库服务器通信吗?从您的问题很难判断答案是“否”还是“有时,但不可靠”。

  • 我的新 php 代码是否在与其 MySQL 数据库相同的托管供应商处运行?用网络工程师的术语来说,问题是“他们在同一个数据中心网络上吗?”

  • 我是否有机会尝试从旧代码中访问新数据库,或从新代码中访问旧数据库?

托管公司的一些(但不是全部)技术支持专家知道这种事情。寻求帮助,但请确保说出的前两个词是“我正在迁移”,以便他们知道这是新客户和一次性设置问题。

【讨论】:

  • 嘿,感谢您的明确回答,因为我现在检查了旧的 cPanel 有 PHP 版本 5.4,而我们的新 cPanel 有最新的 PHP 版本,我相信是 7.3,我确实尝试使用这个 @987654321 进行连接@ 由上面的朋友提供,它连接完美,但是 WordPress 的 wp-config.php 仍然存在同样的问题。提前谢谢先生!
  • 这里是 wp-config.php code
猜你喜欢
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2014-11-06
相关资源
最近更新 更多