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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

单位的开发同事需要将一个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


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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
8月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
6月前
|
关系型数据库 MySQL Linux
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
312 20
|
SQL 关系型数据库 MySQL
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
327 3
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
388 8
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
117 0
|
存储 关系型数据库 MySQL
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
239 2
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
705 2
|
关系型数据库 MySQL 网络安全
全网首例!MySQL8 MGR多主一键搭建脚本分享
全网首例!MySQL8 MGR多主一键搭建脚本分享
325 1
|
缓存 关系型数据库 MySQL
分享一个实用的MySQL一键巡检脚本
分享一个实用的MySQL一键巡检脚本
287 0

推荐镜像

更多