cmkzjw 发表于 2018-8-31 10:26:18

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=&quot;localhost&quot;;my $db_username_local=&quot;root&quot;;my $db_password_local=&quot;password&quot;;my $db_dbname_local=&quot;baby&quot;;my $db_backupdir_local=&quot;/root/dbbackup/local&quot;;if (-e $db_backupdir_local){    print &quot;The database backup dir is $db_backupdir_local\n&quot;;}else{    mkdir $db_backupdir_local;}my $db_time_local=`date +%y%m%d%H%M%S`;#backup localhost databasesprint &quot;$db_dbname_local is backuping.....\n&quot;;system &quot;/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&quot;;if ( $?==0 ){       print &quot;Database $db_dbname_local is backup OK!\n&quot;;}else{       print &quot;Database $db_dbname_local is backup FALSE!\n&quot;;       exit ;} print &quot;Compress the dump file\n&quot;;system&quot;gzip$db_backupdir_local/$db_dbname_local$db_time_local&quot;; if ( $?==0 ){       print &quot;Dump file is compress OK!\n&quot;;}else{       print &quot;Dump file is compress FALSE!\n&quot;;      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 &quot;$keys -> $values Trunk   MySQL(0\n&quot;;print &quot;$keys -> $values Branch MySQL(1\n&quot;;print &quot;$keys -> $values>print &quot;Please choose the MySQL host IP which you want to import:\n&quot;;chomp($_=);if( m/0|1|2/ ){    chomp( $dbhost_remote=&quot;$values[$_]&quot;);}else{    print &quot;The mysql database is not found choose one from above list!\n&quot;;    exit;} #### #sub improt_remote_db {# print &quot;Please tell me which mysql db do you want to import to local:\n&quot;;my $db_host_remote=&quot;$dbhost_remote&quot;;my $db_username_remote=&quot;root&quot;;my $db_password_remote=&quot;password&quot;;my $db_dbname_remote=&quot;baby&quot;;my $db_backupdir_remote=&quot;/root/dbbackup/remote&quot;;if (-e $db_backupdir_remote){    print &quot;The database export dir is $db_backupdir_remote\n&quot;;}else{    mkdir $db_backupdir_remote;} my $db_time_remote=`date +%y%m%d%H%M%S`;#backup localhost databasesprint&quot;The database $db_dbname_remote is dumping.....\n&quot;;`/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 &quot;Database $db_dbname_remote is export OK!\n&quot;;}else{       print &quot;Database $db_dbname_remote is export FALSE!\n&quot;;       exit;} print &quot;Import $db_host_remotemysql $db_dbname_remote begin.....\n&quot;; system &quot;/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&quot;; if ( $?==0 ){       print &quot;Database $db_dbname_remote is import OK!\n&quot;;}else{       print &quot;Database $db_dbname_remote is import FALSE!\n&quot;;       exit;} #}####unlink &quot;$db_backupdir_remote/*&quot;;print &quot;Import $db_host_remotemysql $db_dbname_remote is OK\n&quot;;#END
页: [1]
查看完整版本: Perl 脚本实现MySQL 异机导入导出