Perl 脚本实现MySQL 异机导入导出

单位的开发同事需要将一个mysql 中的库导入到本地mysql中 所以为了减少手工操作,就写了下面的一个用perl 实现的 mysql 异机导入导出脚本:如下

 #!/usr/bin/perl  -w

 
#Author:andylhz
#Date:20120/08/29
#Purpose:Import database from other mysql db host to local.
 
 
my $db_host_local="localhost";
my $db_username_local="root";
my $db_password_local="password";
my $db_dbname_local="baby";
my $db_backupdir_local="/root/dbbackup/local";
if (-e $db_backupdir_local){
    print "The database backup dir is $db_backupdir_local\n";
}else{
    mkdir $db_backupdir_local;
}
my $db_time_local=`date +%y%m%d%H%M%S`;
#backup localhost databases
print "$db_dbname_local is backuping.....\n";
system "/usr/local/mysql/bin/mysqldump -h $db_host_local -u$db_username_local -p$db_password_local --databases $db_dbname_local >$db_backupdir_local/$db_dbname_local$db_time_local";
if ( $?==0 ){
       print "Database $db_dbname_local is backup OK!\n";
}else{
       print "Database $db_dbname_local is backup FALSE!\n";
       exit ;
}
 
print "Compress the dump file\n";
system  "gzip  $db_backupdir_local/$db_dbname_local$db_time_local";
 
if ( $?==0 ){
       print "Dump file is compress OK!\n";
}else{
       print "Dump file is compress FALSE!\n";
      exit;
}
 
####
 
#!/usr/bin/perl
 
 
%iplist=('144trunk'=>'192.168.100.144','114branch'=>'192.168.100.114','164release'=>'192.168.100.164');
@keys= keys %iplist;
@values= values %iplist;
 
print "$keys[0] -> $values[0] Trunk   MySQL(0\n";
print "$keys[1] -> $values[1] Branch MySQL(1\n";
print "$keys[2] -> $values[2] Release  MySQL(2\n";
print "Please choose the MySQL host IP which you want to import:\n";
chomp($_=<STDIN>);
if( m/0|1|2/ ){
    chomp( $dbhost_remote="$values[$_]");
}else{
    print "The mysql database is not found choose one from above list!\n";
    exit;
}
 
####
 
#sub improt_remote_db {
# print "Please tell me which mysql db do you want to import to local:\n";
my $db_host_remote="$dbhost_remote";
my $db_username_remote="root";
my $db_password_remote="password";
my $db_dbname_remote="baby";
my $db_backupdir_remote="/root/dbbackup/remote";
if (-e $db_backupdir_remote){
    print "The database export dir is $db_backupdir_remote\n";
}else{
    mkdir $db_backupdir_remote;
}
 
my $db_time_remote=`date +%y%m%d%H%M%S`;
#backup localhost databases
print  "The database $db_dbname_remote is dumping.....\n";
`/usr/local/mysql/bin/mysqldump -h $db_host_remote -u$db_username_remote -p$db_password_remote --databases $db_dbname_remote >$db_backupdir_remote/$db_dbname_remote$db_time_remote`;
 
if ( $?==0 ){
       print "Database $db_dbname_remote is export OK!\n";
}else{
       print "Database $db_dbname_remote is export FALSE!\n";
       exit;
}
 
print "Import $db_host_remote  mysql $db_dbname_remote begin.....\n";
 
system "/usr/local/mysql/bin/mysql -u$db_username_local -p$db_password_local $db_dbname_local < $db_backupdir_remote/$db_dbname_remote$db_time_remote";
 
if ( $?==0 ){
       print "Database $db_dbname_remote is import OK!\n";
}else{
       print "Database $db_dbname_remote is import FALSE!\n";
       exit;
}
 
#}
####
unlink "$db_backupdir_remote/*";
print "Import $db_host_remote  mysql $db_dbname_remote is OK\n";
 
 
#END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 5.7是一个流行的关系型数据库管理系统,而Perl是一种功能强大的编程语言。这两者可以搭配使用,来实现MySQL数据库的访问和操作。 MySQL 5.7提供了一系列的API和驱动程序,允许开发者使用Perl编写的应用程序与数据库进行通信。通过Perl语言可以方便地连接到MySQL数据库,并可以执行各种常见的数据库操作,如查询、插入、更新和删除数据。 在Perl中使用MySQL 5.7,需要使用DBI模块,它是Perl操作数据库的标准接口。通过DBI模块,可以连接到MySQL数据库,并执行各种SQL语句。可以使用DBI的prepare和execute方法来预编译和执行SQL语句,还可以使用fetchrow_array方法获取查询结果。 PerlMySQL的搭配使用,可以实现各种功能,从简单的查询和更新到复杂的数据处理和报表生成。例如,可以使用Perl编写脚本来读取数据库中的数据,并进行数据分析和处理,也可以将数据导出到其他格式的文件中。 此外,MySQL 5.7和Perl的兼容性良好,可以在Windows、Linux和Mac等操作系统上使用。而且,MySQL 5.7的官方文档提供了丰富的Perl示例代码和教程,方便开发者学习和使用。 总结来说,MySQL 5.7和Perl是很好的组合,通过Perl可以方便地在应用程序中访问和操作MySQL数据库,并且兼容性好,使用灵活。 ### 回答2: MySQL 5.7是一种关系型数据库管理系统,它是由Oracle公司开发和支持的。它具有很多功能和优点,比如可扩展性高、事务支持和丰富的数据类型。Perl是一种通用的脚本语言,它在文本处理方面表现出色,被广泛用于开发Web应用程序和系统管理任务。 MySQL 5.7和Perl可以相互配合使用,以实现各种数据处理和管理任务。Perl提供了很多开发MySQL应用程序所需的模块和工具,可以轻松地连接MySQL数据库,执行查询和操作数据。通过Perl,我们可以编写复杂的脚本来处理和分析大量数据,快速地生成报告和统计信息。 在使用MySQL 5.7和Perl开发应用程序时,我们可以使用Perl提供的数据库模块(比如DBI和DBD::mysql)来连接和操作MySQL数据库。通过这些模块,我们可以轻松地执行SQL查询、插入、更新和删除数据。此外,Perl还提供了很多其他的模块和函数,可以帮助我们更好地管理和处理数据库。 总的来说,MySQL 5.7和Perl是一对强大的组合,可以用于开发各种类型的应用程序和处理数据。无论是在Web开发领域还是在系统管理任务中,它们都展现出了卓越的性能和灵活性。通过结合二者的优势,我们可以轻松地处理和管理大量的数据实现高效的数据库操作和数据分析。 ### 回答3: MySQL 5.7是一种流行的开源关系型数据库管理系统,它由Oracle开发和维护。它提供了一个稳定、可靠和高效的解决方案,可用于存储和管理大量数据MySQL 5.7支持多种操作系统,包括Linux、Windows和Mac OS。 Perl是一种功能强大的解释型编程语言,它被广泛用于开发各种类型的应用程序,包括Web开发、系统管理、数据库操作等。Perl语言具有强大的正则表达式功能和灵活的文本处理能力,这使得它成为处理大量数据的理想选择。 MySQL 5.7和Perl可以很好地搭配使用,以满足各种数据库操作需求。Perl提供了一些MySQL相关的模块,如DBI(Database Interface)和DBD(Database Driver),可以方便地连接、查询和处理MySQL数据库。 使用Perl连接MySQL数据库非常简单。首先,我们需要安装相关的Perl模块,如DBI和DBD::mysql。然后,我们可以使用DBI模块提供的接口,通过指定数据库的连接参数来连接到MySQL数据库。一旦连接成功,就可以使用Perl编写SQL查询语句,并使用DBI模块提供的方法执行查询操作。查询结果可以以数组或哈希的形式返回,方便我们进行后续处理。 除了基本的查询操作,Perl还可以通过DBI模块提供的接口执行其他数据库操作,如插入数据、更新数据和删除数据等。我们可以使用Perl的循环和条件语句结合MySQL的语法来实现复杂的数据库操作。此外,Perl还支持事务处理,可以确保在多个数据库操作中的一致性。 综上所述,MySQL 5.7和Perl是一对强大的组合,可以实现各种复杂的数据库操作。无论是开发Web应用、系统管理还是处理大量数据MySQL 5.7和Perl都能提供高效、稳定和灵活的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值