-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フォルダーにバックアップを生成するためにこのファイルを呼び出します。私は1つのサーバーに2つのサーバーを持っていますが、このコードは完全に機能しますが、2番目のサーバーでは、このコードは次のようにSQLの一部のみを含む.sql zipファイルを生成します

-- 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 に答える