Unit's development colleague needs to import a MySQL library into local MySQL so in order to reduce the manual operation, I wrote the following MySQL import and export script with Perl implementation:
#!/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 for your want to import:\n";
Chomp ($_=<stdin>);
if (m/0|1|2/) {
Chomp ($dbhost _remote= "$values [$_]");
}else{
Print "The MySQL database isn't found choose one from above list!\n";
Exit
}
####
#sub improt_remote_db {
# print "Please tell me which MySQL DB does 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
This article is from the "Shadow Knight" blog, please be sure to keep this source http://andylhz2009.blog.51cto.com/728703/980818