-1

我正在使用 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 = "mysqldump -u$username -p$password -h$hostname $database | gzip > $backupFile";

system($command, $result);

我将此代码放在 php 文件中并调用此文件以在 dbBackup 文件夹中生成备份。我在一台服务器上有两台服务器,此代码运行良好,但在第二台服务器上,此代码生成 .sql zip 文件,其中仅包含 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 */;

为什么会这样?

提前致谢。

4

2 回答 2

0

我最近遇到了同样的问题。事实证明,失败的数据库用户没有“锁定表”权限。我更改了用户的权限(在我的情况下,使用 cPanel)并且我的脚本有效。

于 2013-01-16T19:34:54.640 回答
0

您是否检查过两台服务器上的 MySQL 版本?这里记录了一个可能相关的错误......您的版本应该已修复,但请确保您检查两个服务器是否具有相同的版本,以防万一。

于 2012-06-04T05:28:35.700 回答