温馨提示×

PHP在CentOS上如何备份数据

小樊
43
2025-11-25 18:29:54
栏目: 编程语言

在CentOS上使用PHP备份数据,可以通过编写PHP脚本来实现。以下是一个简单的示例,展示了如何使用PHP备份MySQL数据库:

  1. 首先,确保已经安装了PHP和MySQL。如果尚未安装,可以使用以下命令安装:
sudo yum install php php-mysql
  1. 创建一个名为backup.php的文件,并在其中输入以下代码:
<?php
// 数据库配置信息
$db_host = 'localhost';
$db_user = 'your_username';
$db_pass = 'your_password';
$db_name = 'your_database_name';

// 备份文件存储路径
$backup_path = '/path/to/your/backup/directory/';

// 当前日期和时间
$date = date('Y-m-d_H-i-s');
// 备份文件名
$backup_file = $backup_path . $db_name . '_' . $date . '.sql';

// SQL查询,用于获取数据库结构和数据
$sql = "SHOW TABLES";
$result = mysqli_query($conn, $sql);

// 创建备份文件并写入SQL查询
$file = fopen($backup_file, 'w');
if (!$file) {
    die("无法创建备份文件: $backup_file");
}

while ($table = mysqli_fetch_row($result)) {
    $table_name = $table[0];
    $sql = "SHOW CREATE TABLE `$table_name`";
    $result = mysqli_query($conn, $sql);
    $create_table = mysqli_fetch_row($result);
    fwrite($file, $create_table[1] . ";\n\n");

    $sql = "SELECT * FROM `$table_name`";
    $result = mysqli_query($conn, $sql);
    $num_fields = mysqli_num_fields($result);

    while ($row = mysqli_fetch_row($result)) {
        $row_data = array();
        for ($i = 0; $i < $num_fields; $i++) {
            $row_data[] = mysqli_escape_string($conn, $row[$i]);
        }
        fwrite($file, "INSERT INTO `$table_name` VALUES (" . implode(', ', $row_data) . ");\n");
    }
    fwrite($file, "\n\n");
}

fclose($file);
echo "数据库备份完成: $backup_file\n";
?>
  1. 修改$db_host$db_user$db_pass$db_name变量,使其与您的数据库配置相匹配。

  2. 修改$backup_path变量,使其指向您希望存储备份文件的目录。

  3. 在命令行中,导航到包含backup.php文件的目录,并运行以下命令:

php backup.php

这将生成一个包含数据库结构和数据的SQL文件。请确保您有足够的权限来写入备份文件,并定期执行此脚本以保持数据安全。

0