【问题标题】:Backup DB from php从 php 备份数据库
【发布时间】:2017-10-28 07:03:18
【问题描述】:

我正在本地服务器上测试这个脚本

$dump_path = "backups"; 
$host = "localhost";  
$user = "root";  
$pass = "";  
$command=$dump_path.'mysqldump -h '.$host.' -u '.$user.' dental > dental_b.sql';
if  (system($command)) {
  echo "YES" ; 
} else {
  echo "Error" ;
}

但是为什么尽管数据库中的所有数据都是真实的,但该脚本没有执行并显示错误。

【问题讨论】:

  • 你要执行什么命令?现在是backupsmysqldump -h localhost -u root dental > dental_b.sql。你确定$dump_path 应该是命令的前缀吗?
  • 我知道,但我需要解决这个问题

标签: php mysql xampp


【解决方案1】:

如果您在 localhost 上使用 mysqldump,我很确定您不需要主机选项。您连接命令的方式在我看来很混乱。让我告诉你什么对我有用。我一直用这个:

<?php

$user = "root";  
$pass = "";
$database = "dental";

// File name
$file_name = 'dental_b.' . date('mdY.Hia') . '.sql.gz';

// Storage directory
$storage_dir = __DIR__ . '/backups';
if( ! is_dir( $storage_dir ) )
    mkdir( $storage_dir, 0777, TRUE );

// Absolute path to new file
$absolute_path = $storage_dir . '/' . $file_name;

// Create the backup file
exec( 'mysqldump -u ' . $user . 
    ' -p' . $pass . 
    ' ' . $database . 
    ' | gzip > ' . $absolute_path );

是的,我正在压缩文件。我想您会发现这是存储、发送电子邮件等的不错选择。

编辑---

如果您不使用密码,则不应使用 -p。在这种情况下,您需要更改命令。

【讨论】:

  • 非常感谢详细解答
猜你喜欢
  • 2011-11-10
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多