【问题标题】:Get mysqldump debug information获取 mysqldump 调试信息
【发布时间】:2013-08-01 15:50:26
【问题描述】:

我目前有一个PHP ChronJob,每天备份我的数据库,脚本如下:

<?php
set_time_limit(86000);
include($_SERVER['DOCUMENT_ROOT']."/pagetop.php");
$db = new dbsettings;
$filename = date("d-m-Y");
$output = array();
$output =  shell_exec("C:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe --user=".$db->username." --password=".$db->password." --host=".$db->hostname." --add-drop-database --add-drop-table --skip-extended-insert --disable-keys --add-locks --force --debug-info ".$db->databaseName." > ".$_SERVER['DOCUMENT_ROOT']."backups/".$filename.".sql");
//Write backup log
$file = fopen($_SERVER['DOCUMENT_ROOT']."backups/backup.log", "a");
fwrite($file, "\n\r".print_r($output, true)."\n\r");
fclose($file);
?>

一切正常,以正确的格式创建一个 SQL 文件,但我无法将调试信息写入日志,即使我有 --debug-info 参数:

打印调试信息和内存和CPU使用统计 程序退出。

如何正确地将这些信息写入文件?

【问题讨论】:

  • --debug[=debug_options], -# [debug_options] 写调试日志。典型的 debug_options 字符串是 'd:t:o,file_name'。默认值为'd:t:o,/tmp/mysqldump.trace'。
  • @RobertRozas 我刚试过,我在 Apache 错误日志中得到 mysqldump: ERROR: Option 'debug='d:t:o,/backups/mysqldump.trace'' used, but is disabled
  • 为什么会解决任何问题?!我会得到更少的关于出了什么问题的信息!

标签: php mysql file-io exec mysqldump


【解决方案1】:

此选项似乎根本不适用于 Windows。我并不感到惊讶,因为这些信息在这个系统上不如在 Linux 上那么容易获得,而且 MySQL 的人可能不会费心移植这个很少使用的选项。

在 Linux 上,调试信息被发送到 stderr(您通常会使用 2&gt;debug.log 重定向来捕获此信息)。

【讨论】:

  • 我会暂时搁置这个问题,以防万一有人有解决方案。但我认为绝对没有任何事情发生,没有错误消息;就像它只是被忽略那样会让我认为你是对的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 2013-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
相关资源
最近更新 更多