在 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 的備份文件,其中包含數據庫中所有表的結構和數據。你可以將此文件導入到另一個數據庫中以恢復數據。