在 Perl 中,你可以使用 DBI(Database Independent Interface)模块来执行数据库备份
cpan DBD::mysql
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
# 数据库连接参数
my $db_host = 'localhost';
my $db_name = 'your_database_name';
my $db_user = 'your_database_user';
my $db_pass = 'your_database_password';
# 备份文件名
my $backup_file = 'backup_file.sql';
# 创建数据库连接
my $dbh = DBI->connect("dbi:mysql:$db_name;host=$db_host", $db_user, $db_pass, { RaiseError => 1, AutoCommit => 0 })
or die "Could not connect to database: $DBI::errstr";
# 获取数据库中的所有表名
my @tables = @{$dbh->tables};
# 开始备份
print "Backing up database $db_name to $backup_file ...\n";
open(my $fh, '>', $backup_file) or die "Could not open backup file $backup_file: $DBI::errstr";
# 导出表结构
foreach my $table (@tables) {
print $fh "SHOW CREATE TABLE $table;\n";
}
# 导出数据
foreach my $table (@tables) {
print $fh "SELECT * FROM $table;\n";
}
# 关闭备份文件句柄和数据库连接
close($fh);
$dbh->disconnect();
print "Backup completed.\n";
修改脚本中的数据库连接参数($db_host、$db_name、$db_user 和 $db_pass)以匹配你的目标数据库。
在命令行中运行备份脚本:
perl backup_database.pl
这将创建一个名为 backup_file.sql 的备份文件,其中包含数据库中所有表的结构和数据。你可以将此文件导入到另一个数据库中以恢复数据。