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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

单位的开发同事需要将一个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 dbhostlocaludb_username_local -pdbpasswordlocaldatabasesdb_dbname_local >dbbackupdirlocal/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  dbbackupdirlocal/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( dbhostremote="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 dbhostremote="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 dbhostremoteudb_username_remote -pdbpasswordremotedatabasesdb_dbname_remote >dbbackupdirremote/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 dbhostremotemysqldb_dbname_remote begin.....\n";
 
system "/usr/local/mysql/bin/mysql -udbusernamelocalpdb_password_local dbdbnamelocal<db_backupdir_remote/dbdbnameremotedb_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 dbhostremotemysqldb_dbname_remote is OK\n";
 
 
#END


     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/980818 ,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
347
分享
相关文章
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
164 3
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
61 0
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
171 8
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
132 2
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
289 2
全网首例!MySQL8 MGR多主一键搭建脚本分享
全网首例!MySQL8 MGR多主一键搭建脚本分享
146 1
分享一个实用的MySQL一键巡检脚本
分享一个实用的MySQL一键巡检脚本
143 0
分享一篇mysql数据库备份脚本
分享一篇mysql数据库备份脚本
60 0