php - 与数据库的连接在读取通信数据包时出错
问题描述
我已经通过备份工具将数据库从 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
解决方案
来自 http 的错误 500 意味着您的 Web 程序 - 您的 php 程序 - 尝试发送该页面失败。但是 500 绝对不能告诉我们它失败的原因。所以,继续前进......您似乎在 php 和 mysql 之间遇到了通信错误。
我相信你问题中的关键词是from cPanel to cPanel
。这表明您正在将应用程序从服务器迁移到服务器,甚至可能从托管供应商迁移到托管供应商。
您已将 MySQL 数据从备份导入到具有不同 IP 地址的新服务器上。因此,您现在有两个不同的数据库实例。而且,您的 php 程序可能有两个不同的实例。
所以现在您正在解决这些问题:
我的新 php 代码可以与我的新数据库服务器通信吗?从您的问题很难判断答案是“否”还是“有时,但不可靠”。
我的新 php 代码是否在与其 MySQL 数据库相同的托管供应商处运行?用网络工程师的术语来说,问题是“他们在同一个数据中心网络上吗?”
我是否有机会尝试从旧代码中访问新数据库,或者从新代码中访问旧数据库?
托管公司的一些(但不是全部)技术支持专家知道这种事情。寻求帮助,但请确保您说出的前两个词是“我正在迁移”,以便他们知道这是新客户和一次性设置问题。
推荐阅读
- reporting-services - SSRS 报表在浏览器和报表生成器中的呈现方式不同
- common-lisp - Hunchentoot 是未知的处理程序
- grails - netbeans 9:如何包含依赖的 grails 3.3.8 项目
- gitlab - 我们可以在 Gitlab 存储库中设置 Gitlab webhook 以触发不同分支的不同 Jenkins 构建作业吗?
- json - Oj::ParseError: 不是有效的 ID 号 - "^rc"
- apache-spark-sql - 如何删除 pyspark 数据框中的变音符号?
- linux - 是否有相当于 $SHVLL 的 Windows?
- javascript - module.export 和全局对象
- c++ - 字符串类的奇怪行为
- ruby-on-rails - 如何在rails中获取aws-s3复制对象的URL