使用 PHP 批量单独导出 MySQL 数据库文件

5 篇文章 1 订阅

使用 PHP 批量单独导出 MySQL 数据库文件

原理

  1. 使用 mysql 命令获取数据库信息
  2. 清洗、过滤数据
  3. 使用 mysqldump 命令进行导出

代码

dump_database.php

<?php
/**
 * 使用 PHP 批量单独导出 MySQL 数据库文件
 */
define('USERNAME', 'root'); // MySQL用户名
define('PASSWORD', 'root'); // MySQL密码

$result = shell_exec(sprintf('mysql -u%s -p%s -e "show databases;"', USERNAME, PASSWORD));
$rowArr = explode("\n", $result);

// 过滤
if ($rowArr[0] == 'Database') unset($rowArr[0]); // 忽略表头
$dbNameList = array_filter($rowArr, function($dbName) {
    $ignoreList = ['information_schema', 'mysql', 'performance_schema', 'sys', 'test']; // 忽略的数据库列表
    $dbName = trim($dbName);
    return empty($dbName) || in_array($dbName, $ignoreList) ? false : true;
});
$dbNameList = array_merge($dbNameList, []); // 重排key下标

// 导出
for ($i=0; $i < count($dbNameList); $i++) { 
    $dbName = $dbNameList[$i];
    echo sprintf("进度:%d/%d %s\n", $i+1, count($dbNameList), $dbName);
    $result = shell_exec(sprintf('mysqldump -u%s -p%s %s > %s.sql', USERNAME, PASSWORD, $dbName, $dbName));
}

使用

  1. 把源码保存到 php 文件(eg: dump_database.php
  2. 配置 MySQL 的用户名和密码
  3. 运行 php dump_database.php

数据库对应的 .sql 文件 会保存在运行目录

使用 mysqldump 命令导出全部数据库到一个 .sql 文件

mysqldump -uroot -p --all-databases > sqlfile.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值