我已经通过备份工具将数据库从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";
}
响应为此页面无法使用,并且出现 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
答案 0 :(得分:0)
来自http的错误500表示您的网络程序-您的php程序-尝试发送该页面失败。但是500绝对不能告诉我们为什么失败了。因此,继续前进...您似乎在php和mysql之间出现通讯错误。
我相信您的问题中的关键词是from cPanel to cPanel
。这表明您正在将应用程序从服务器迁移到服务器,甚至可能从托管供应商迁移到托管供应商。
您已将MySQL数据从备份导入到具有其他IP地址的新服务器上。因此,您现在有两个不同的数据库实例。并且,可能您有两个不同的php程序实例。
所以现在您要解决以下问题:
我的新PHP代码可以与我的新数据库服务器通信吗?从您的问题中很难判断答案是“否”还是“有时但不可靠”。
我的新PHP代码是否与MySQL数据库在同一托管供应商上运行?用网络工程师的术语来说,问题是“它们是否在同一个数据中心网络上?”
我是否有可能尝试从旧代码中访问新数据库,或者从新代码中访问旧数据库?
托管公司的一些(但不是全部)技术支持专家都知道这种事情。寻求帮助,但请确保您口中的前两个词是“我正在迁移”,以便他们知道这是一个新客户和一次性安装问题。