`

导入MySQL数据库模式及数据的Bash脚本(改进版本)

阅读更多

导入MySQL数据库模式及数据的Bash脚本(改进版本)

本文链接:http://codingstandards.iteye.com/blog/1190349

 

Bash脚本:import_db.sh

#!/bin/bash

# 脚本:import_db.sh
#
# v1: 2006-12-04
# v2: 2011-10-08/09
# v3: 2011-10-12 support for .tar.gz or .tgz
#

# 数据库连接参数
DBOPTS="-psunrise --default-character-set=gbk"

# 检查命令行参数
if [ $# -ne 2 ]; then
        echo "usage: $0 <db-name> <db-sql-dir>"
        echo "usage: $0 <db-name> <db-tgz-file>"        # 2011.10.12
        exit 1
fi

# 打印当前时间的函数
now()
{
        date "+%F %T.%N"
}

# 保存命令行参数
DB=$1
DIR_OR_TGZ=$2   # 2011.10.12 有可能是.tar.gz或.tgz文件
DIR=${DIR_OR_TGZ%.tar.gz}
DIR=${DIR%.tgz}
if [ "$DIR_OR_TGZ" != "$DIR" ]; then
        if [ ! -d "$DIR" ]; then
                echo "$(now)  uncompress $DIR_OR_TGZ ..."
                tar zxvf "$DIR_OR_TGZ" -C "$(dirname "$DIR_OR_TGZ")"
                echo "$(now)  ok."
        fi
fi

# 到sql文件所在目录
cd "$DIR" || exit 2

# 如果没有数据文件就退出
if [ ! "$(ls *.sql 2>/dev/null)" ]; then
        if [ -d "$DB" ]; then   # 2011.10.12 如果有DB子目录,进入
                cd "$DB" || exit 2
                if [ ! "$(ls *.sql 2>/dev/null)" ]; then
                        echo "$0: no *.sql found in $(pwd)"
                        exit 3
                fi
        else
                echo "$0: no *.sql found in $(pwd)"
                exit 3
        fi
fi

# 创建数据库
#2006.12.11
#第一种语法在5.0下支持
#第二种语法可用于其他版本
#肯定只有一个能执行成功
echo "$(now)  create database $DB if not exists"
mysql $DBOPTS <<EOF
CREATE DATABASE IF NOT EXISTS $DB CHARACTER SET gbk COLLATE gbk_chinese_ci;
EOF
mysql $DBOPTS <<EOF
CREATE DATABASE IF NOT EXISTS $DB;
EOF

# 执行导入
doit()
{
        echo "$(now)  import to $DB ..."
        for f in *.sql;
        do
                echo "$(now)  import $f ..."
                mysql $DBOPTS $DB < $f
                echo "$(now)  ok."
        done
        echo "$(now)  done."
}

# main
doit 2>&1 | tee -a import_db.log

# END.

 

使用实例

[root@liunx0918 mysql]# ./import_db.sh
usage: ./import_db.sh <db-name> <db-sql-dir>
usage: ./import_db.sh <db-name> <db-tgz-file>

[root@liunx0918 mysql]# ./import_db.sh imx /root/backup/db20111012094304.tar.gz
2011-10-12 09:55:15.539624750  uncompress /root/backup/db20111012094304.tar.gz ...
db20111012094304/
db20111012094304/imx/
db20111012094304/imx/imx_email_verify.sql
db20111012094304/imx/imx_support_guest.sql
db20111012094304/imx/imx_initial_info.sql
db20111012094304/imx/imx_candidate_set_type.sql
db20111012094304/imx/imx_blog_info.sql
db20111012094304/imx/imx_address_book.sql
db20111012094304/imx/imx_account_info.sql
db20111012094304/imx/imx_blog_guest.sql
db20111012094304/imx/imx_notice_info.sql
db20111012094304/imx/imx_stat_account.sql
db20111012094304/imx/imx_invite_code.sql
db20111012094304/imx/imx_file_inbox.sql
db20111012094304/imx/imx_candidate_type.sql
db20111012094304/imx/imx_friend_info.sql
db20111012094304/imx/imx_contact_detail.sql
db20111012094304/imx/imx_organ_info.sql
db20111012094304/imx/imx_score_info.sql
db20111012094304/imx/imx_support_website.sql
db20111012094304/imx/imx_online_info.sql
db20111012094304/imx/imx_file_info.sql
db20111012094304/imx/imx_staff_info.sql
db20111012094304/imx/imx_mobile_verify.sql
db20111012094304/imx/imx_candidate_score.sql
db20111012094304/imx/imx_account_score.sql
db20111012094304/imx/imx_support_account.sql
db20111012094304/imx/imx_table_usage.sql
db20111012094304/imx/imx_invite_mail.sql
db20111012094304/imx/imx_chat_info.sql
db20111012094304/imx/imx_notice_file.sql
db20111012094304/imx/imx_candidate_staff.sql
db20111012094304/imx/imx_notice_target.sql
db20111012094304/imx/imx_contact_info.sql
db20111012094304/imx/imx_candidate_set_staff.sql
db20111012094304/imx/imx_voter_staff.sql
db20111012094304/imx/imx_account_invite.sql
db20111012094304/imx/imx_chat_submit.sql
db20111012094304/imx/imx_support_group.sql
db20111012094304/imx/imx_dept_info.sql
db20111012094304/imx/imx_voter_type.sql
db20111012094304/imx/imx_friend_group.sql
db20111012094304/imx/imx_chat_deliver.sql
db20111012094304/imx/imx_voter_voted.sql
db20111012094304/imx/imx_voter_candidate.sql
db20111012094304/export_db.log
2011-10-12 09:55:15.691899106  ok.
2011-10-12 09:55:15.697114176  create database imx if not exists
2011-10-12 09:55:15.706611417  import to imx ...
2011-10-12 09:55:15.707964932  import imx_account_info.sql ...
2011-10-12 09:55:22.511765873  ok.
2011-10-12 09:55:22.512824271  import imx_account_invite.sql ...
2011-10-12 09:55:22.595701407  ok.
2011-10-12 09:55:22.597295499  import imx_account_score.sql ...
2011-10-12 09:55:22.626224528  ok.
2011-10-12 09:55:22.627742229  import imx_address_book.sql ...
2011-10-12 09:55:22.657232257  ok.
2011-10-12 09:55:22.658800696  import imx_blog_guest.sql ...
2011-10-12 09:55:22.685601903  ok.
2011-10-12 09:55:22.687303659  import imx_blog_info.sql ...
2011-10-12 09:55:22.713716619  ok.
2011-10-12 09:55:22.715360744  import imx_candidate_score.sql ...
2011-10-12 09:55:22.756770527  ok.
2011-10-12 09:55:22.758363084  import imx_candidate_set_staff.sql ...
2011-10-12 09:55:22.806626651  ok.
2011-10-12 09:55:22.808177474  import imx_candidate_set_type.sql ...
2011-10-12 09:55:22.834132030  ok.
2011-10-12 09:55:22.835702009  import imx_candidate_staff.sql ...
2011-10-12 09:55:22.864735561  ok.
2011-10-12 09:55:22.866387560  import imx_candidate_type.sql ...
2011-10-12 09:55:22.898687218  ok.
2011-10-12 09:55:22.900264364  import imx_chat_deliver.sql ...
2011-10-12 09:55:25.539170115  ok.
2011-10-12 09:55:25.540288016  import imx_chat_info.sql ...
2011-10-12 09:55:28.562270338  ok.
2011-10-12 09:55:28.563371201  import imx_chat_submit.sql ...
2011-10-12 09:55:29.582725333  ok.
2011-10-12 09:55:29.583792000  import imx_contact_detail.sql ...
2011-10-12 09:55:31.739669903  ok.
2011-10-12 09:55:31.741277743  import imx_contact_info.sql ...
2011-10-12 09:55:31.782839587  ok.
2011-10-12 09:55:31.784411855  import imx_dept_info.sql ...
2011-10-12 09:55:31.810571330  ok.
2011-10-12 09:55:31.812144210  import imx_email_verify.sql ...
2011-10-12 09:55:31.845733083  ok.
2011-10-12 09:55:31.847350977  import imx_file_inbox.sql ...
2011-10-12 09:55:32.018435504  ok.
2011-10-12 09:55:32.019571222  import imx_file_info.sql ...
2011-10-12 09:55:32.223091461  ok.
2011-10-12 09:55:32.224817994  import imx_friend_group.sql ...
2011-10-12 09:55:32.281588849  ok.
2011-10-12 09:55:32.283117465  import imx_friend_info.sql ...
2011-10-12 09:55:32.352469737  ok.
2011-10-12 09:55:32.353599725  import imx_initial_info.sql ...
2011-10-12 09:55:32.768651908  ok.
2011-10-12 09:55:32.769782898  import imx_invite_code.sql ...
2011-10-12 09:55:33.727045807  ok.
2011-10-12 09:55:33.728694536  import imx_invite_mail.sql ...
2011-10-12 09:55:33.770391648  ok.
2011-10-12 09:55:33.771906349  import imx_mobile_verify.sql ...
2011-10-12 09:55:33.802596093  ok.
2011-10-12 09:55:33.804146300  import imx_notice_file.sql ...
2011-10-12 09:55:33.837360778  ok.
2011-10-12 09:55:33.838869549  import imx_notice_info.sql ...
2011-10-12 09:55:33.871463636  ok.
2011-10-12 09:55:33.873102290  import imx_notice_target.sql ...
2011-10-12 09:55:33.904068780  ok.
2011-10-12 09:55:33.905662507  import imx_online_info.sql ...
2011-10-12 09:55:33.964979634  ok.
2011-10-12 09:55:33.966095908  import imx_organ_info.sql ...
2011-10-12 09:55:34.040437248  ok.
2011-10-12 09:55:34.042039511  import imx_score_info.sql ...
2011-10-12 09:55:34.085358393  ok.
2011-10-12 09:55:34.086935599  import imx_staff_info.sql ...
2011-10-12 09:55:34.122942442  ok.
2011-10-12 09:55:34.124487621  import imx_stat_account.sql ...
2011-10-12 09:55:34.317791382  ok.
2011-10-12 09:55:34.318910362  import imx_support_account.sql ...
2011-10-12 09:55:34.415522781  ok.
2011-10-12 09:55:34.417132697  import imx_support_group.sql ...
2011-10-12 09:55:34.443188764  ok.
2011-10-12 09:55:34.444804092  import imx_support_guest.sql ...
2011-10-12 09:55:34.517196246  ok.
2011-10-12 09:55:34.518350658  import imx_support_website.sql ...
2011-10-12 09:55:34.601287105  ok.
2011-10-12 09:55:34.602892014  import imx_table_usage.sql ...
2011-10-12 09:55:34.630632566  ok.
2011-10-12 09:55:34.632244462  import imx_voter_candidate.sql ...
2011-10-12 09:55:34.659212229  ok.
2011-10-12 09:55:34.660774478  import imx_voter_staff.sql ...
2011-10-12 09:55:34.686763371  ok.
2011-10-12 09:55:34.688372574  import imx_voter_type.sql ...
2011-10-12 09:55:34.715961108  ok.
2011-10-12 09:55:34.717619823  import imx_voter_voted.sql ...
2011-10-12 09:55:34.743695710  ok.
2011-10-12 09:55:34.745283607  done.
[root@liunx0918 mysql]# 

 

相关博文

【1】导出MySQL数据库模式及数据的Bash脚本

【2】我使用过的Linux命令之mysql - MySQL客户端命令行工具

【3】Bash中使用MySQL导入导出CSV格式数据

【4】导入MySQL数据库模式及数据的Bash脚本(v2)

 

 

 

3
2
分享到:
评论

相关推荐

    python工具-excel批量导入mysql (几千万数据半小时可搞定)

    在本例中,提供的`excelImport.py`脚本应该包含了上述部分或全部逻辑,用于实现快速批量导入Excel数据到MySQL数据库。根据实际需求,你可以对脚本进行调整,例如适应不同的数据库字段结构或处理更多Excel文件。

    php实现excle数据导入mysql数据库

    当我们需要处理Excel数据,例如将Excel文件中的数据批量导入到MySQL数据库时,PHP提供了多种解决方案。下面我们将深入探讨如何使用PHP实现这个功能。 首先,我们需要理解Excel文件的结构。Excel文件通常以`.xls`或`...

    如何导入导出mysql数据库

    本文主要介绍MySQL数据库的导入导出操作,包括SQL脚本形式的导入导出以及直接拷贝数据库目录和文件的方式。 #### 2. 方法一:SQL脚本形式 **2.1 导出SQL脚本** 在原数据库服务器上,可以通过以下两种方式来导出...

    将数据导入到mysql数据库中

    ### 将数据导入MySQL数据库的方法 #### 背景与目的 在进行数据库迁移或备份恢复时,常常需要将外部的数据文件导入到MySQL数据库中。本文主要介绍如何将包括`.frm`、`.myd`(MyISAM数据文件)以及`.myi`(MyISAM索引...

    python连接mysql数据库脚本工具

    在本场景中,我们关注的是使用Python连接MySQL数据库的脚本工具。MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了高效的存储和查询数据的能力。接下来,我们将深入探讨如何使用Python连接到MySQL数据库并...

    Bash中使用MySQL导入导出CSV格式数据

    总的来说,这个压缩包提供的资料涵盖了从Bash脚本操作、MySQL数据库管理到CSV文件格式的理解等多个方面,对于需要处理大量数据的开发者或系统管理员来说,是非常实用的学习资源。通过学习和实践,你可以熟练掌握在...

    mysql导入数据库方法

    在IT行业中,数据库管理是至关...综上所述,通过掌握正确的`source`命令使用方法,以及结合适当的性能调优和错误处理策略,我们可以有效且安全地将大体量SQL文件导入MySQL数据库,为数据管理和业务运营提供坚实的基础。

    mysql 自动备份数据库脚本

    MySQL数据库在日常运营中起着至关重要的作用,因此定期备份是确保数据安全的重要步骤。"mysql 自动备份数据库脚本" 提供了一种自动化的方法,通过Windows的定时任务服务(taskschd.msc)来定期执行数据库的备份,...

    MYSQL导入导出数据库命令

    当你有一个SQL文件并想将其内容导入到MySQL数据库中时,可以使用`mysql`客户端工具。假设你已经有了`mydatabase_backup.sql`文件,你可以使用以下命令来导入数据: ```bash mysql -u [username] -p[password] ...

    MySQL数据库中数据导入与导出探析.pdf

    MySQL数据库在大数据时代扮演着重要角色,数据的导入与导出是数据分析人员必须掌握的基本技能。MySQL提供了多种方法来处理这些任务,包括命令行界面和图形用户界面。本文主要探讨了在Windows环境下通过命令行进行...

    solr7.4数据库导入Demo(mysql数据库)

    本Demo将展示如何使用Solr 7.4与MySQL数据库集成,实现数据导入,并结合IK分词器提升中文搜索体验。 首先,你需要下载并安装Solr 7.4.0。解压压缩包`solr-7.4.0`,这是一个包含Solr服务器和配置文件的完整包。在`...

    mysql数据导入导出

    ### MySQL 数据导入与导出详解 #### 一、MySQL 数据导出 MySQL 提供了多种方式来导出数据,其中最常用的就是 `mysqldump` 命令。通过这个命令,用户可以灵活地导出整个数据库或者指定的表。 ##### 1. 导出整个...

    mysql数据库数据库数据库数据库数据库

    根据提供的文件信息,可以看出本文主要围绕MySQL数据库的基本操作与管理展开。尽管原文存在大量重复以及表述不清晰的地方,但还是可以从中提炼出一系列关键知识点。接下来将这些知识点进行整理和扩展,以便更好地...

    Linux 使用脚本安装MySQL数据库

    在Linux环境中,使用脚本来安装MySQL数据库是一种自动化和高效的方法,尤其对于批量部署或系统配置而言。本篇文章将深入探讨如何编写和执行这样的脚本,以及安装过程中涉及的关键知识点。 首先,我们需要理解Linux...

    对 Mysql 数据库,数据表的导入,导出,备份,恢复操作

    在 MySQL 数据库管理中,数据导入、导出、备份和恢复是至关重要的操作,以确保数据的安全性和完整性。以下是对这些操作的详细说明: 1. **数据导入**: - 使用 `LOAD DATA INFILE` 语句可以直接将数据从文本文件...

    mysqldump导入导出mysql数据库.docx

    MySQL数据库的导入导出是数据库管理中的基础操作,通常用于备份、迁移或复制数据。`mysqldump` 和 `source` 是两个主要的命令,分别用于导出和导入数据。 **mysqldump命令详解** `mysqldump` 是MySQL提供的一个...

    MySQL数据库导出与导入及常见错误解决.docx

    MySQL数据库的管理和维护是数据库管理员日常工作的重要组成部分,其中包括数据的导出与导入操作。这两个步骤在数据库迁移、备份、恢复和测试环境中尤为关键。本文将详细介绍如何在MySQL中执行这些操作,并解决一些...

    MySQL导入导出数据库.pdf

    MySQL数据库的导入与导出是数据库管理中的基本操作,对于数据迁移、备份和恢复具有重要意义。以下是关于这两种方法的详细说明: **方法一:SQL脚本形式** **2.1 导出SQL脚本** 在MySQL中,导出数据库通常采用`...

Global site tag (gtag.js) - Google Analytics