Php mysqldump无法转储数据库
我正在用php代码备份我的mysql数据库。我使用了以下代码Php mysqldump无法转储数据库,php,mysql,mysqldump,Php,Mysql,Mysqldump,我正在用php代码备份我的mysql数据库。我使用了以下代码 $username =escapeshellcmd($db_user); $password =escapeshellcmd($db_pass); $hostname =escapeshellcmd($db_host); $database =escapeshellcmd($db_name); $backupFile='/dbBackup/'.date("Y-m-d-H-i-s").'.sql.gz'; $command = "my
$username =escapeshellcmd($db_user);
$password =escapeshellcmd($db_pass);
$hostname =escapeshellcmd($db_host);
$database =escapeshellcmd($db_name);
$backupFile='/dbBackup/'.date("Y-m-d-H-i-s").'.sql.gz';
$command = "mysqldump -u$username -p$password -h$hostname $database | gzip > $backupFile";
system($command, $result);
我将此代码放在php文件中,并调用此文件在dbBackup文件夹中生成备份。我在一台服务器上有两台服务器,这段代码工作得很好,但在第二台服务器上,这段代码生成.sqlzip文件,其中只包含sql的一部分,如下所示
-- MySQL dump 10.13 Distrib 5.5.23, for Linux (x86_64)
--
-- Host: localhost Database: zm3_quizzes
-- ------------------------------------------------------
-- Server version 5.5.23-55
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
为什么会这样
提前感谢。您检查了两台服务器上的MySQL版本了吗?有一个记录的bug可能与。。。您的版本应该已修复,但请确保检查两台服务器是否具有相同的版本,以防万一。我最近遇到了相同的问题。事实证明,失败数据库的用户没有“锁定表”权限。我更改了用户的权限(在我的例子中,使用cPanel),我的脚本正常工作 谢谢你的回复。我检查了两台服务器上的版本,它们是相同的。