`

导入MySQL数据库模式及数据的Bash脚本 (导出的姊妹篇)

阅读更多

导入MySQL数据库模式及数据的Bash脚本

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

 

注:本文有了改进版本,见 http://codingstandards.iteye.com/blog/1190349

 

Bash脚本:import_db.sh

#!/bin/sh

# 脚本:import_db.sh
#
# v1: 2006-12-04
# v2: 2011-10-08/09
#
#

# 数据库连接参数
# TODO: 修改参数以适用具体的数据库环境
DBOPTS="-pxxx --default-character-set=gbk"

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

# 保存命令行参数
DB=$1
DIR=$2

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

# 如果没有数据文件就退出
if [ ! "$(ls *.sql 2>/dev/null)" ]; then
        echo "no *.sql found!"
        exit 3
fi

# 创建数据库
#2006.12.11
#第一种语法在5.0下支持
#第二种语法可用于其他版本
#肯定只有一个能执行成功
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

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

# 执行导入
doit()
{
        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 import_db.log

# END. 

 

使用实例

[root@sunrise16 scripts]# ./import_db.sh
usage: ./import_db.sh <db-name> <db-sql-dir>
[root@sunrise16 scripts]# ./import_db.sh imx2 db20111010100102/imx
2011-10-11 09:33:49.782042548  import to imx2 ...
2011-10-11 09:33:49.784212623  import imx_account_info.sql ...
2011-10-11 09:33:49.912538514  ok.
2011-10-11 09:33:49.913804591  import imx_account_invite.sql ...
2011-10-11 09:33:50.035139523  ok.
2011-10-11 09:33:50.036768905  import imx_account_score.sql ...
2011-10-11 09:33:50.083882163  ok.
2011-10-11 09:33:50.085559210  import imx_address_book.sql ...
2011-10-11 09:33:50.120771433  ok.
2011-10-11 09:33:50.122403328  import imx_blog_guest.sql ...
2011-10-11 09:33:50.154122246  ok.
2011-10-11 09:33:50.155771897  import imx_blog_info.sql ...
2011-10-11 09:33:50.184327272  ok.
2011-10-11 09:33:50.185972312  import imx_candidate_score.sql ...
2011-10-11 09:33:50.230044643  ok.
2011-10-11 09:33:50.231681074  import imx_candidate_set_staff.sql ...
2011-10-11 09:33:50.296517905  ok.
2011-10-11 09:33:50.298188907  import imx_candidate_set_type.sql ...
2011-10-11 09:33:50.327073406  ok.
2011-10-11 09:33:50.328717538  import imx_candidate_staff.sql ...
2011-10-11 09:33:50.361702026  ok.
2011-10-11 09:33:50.363340405  import imx_candidate_type.sql ...
2011-10-11 09:33:50.405518843  ok.
2011-10-11 09:33:50.407187907  import imx_chat_deliver.sql ...
2011-10-11 09:33:52.799305725  ok.
2011-10-11 09:33:52.800446958  import imx_chat_info.sql ...
2011-10-11 09:33:58.670518068  ok.
2011-10-11 09:33:58.671665310  import imx_chat_submit.sql ...
2011-10-11 09:33:59.792601044  ok.
2011-10-11 09:33:59.793735776  import imx_contact_detail.sql ...
2011-10-11 09:34:04.048223049  ok.
2011-10-11 09:34:04.049892287  import imx_contact_info.sql ...
2011-10-11 09:34:04.149337886  ok.
2011-10-11 09:34:04.150700670  import imx_dept_info.sql ...
2011-10-11 09:34:04.179238783  ok.
2011-10-11 09:34:04.180947552  import imx_email_verify.sql ...
2011-10-11 09:34:04.218037491  ok.
2011-10-11 09:34:04.219700173  import imx_file_inbox.sql ...
2011-10-11 09:34:04.388931191  ok.
2011-10-11 09:34:04.390090340  import imx_file_info.sql ...
2011-10-11 09:34:04.718565732  ok.
2011-10-11 09:34:04.720318900  import imx_friend_group.sql ...
2011-10-11 09:34:04.797772334  ok.
2011-10-11 09:34:04.799389241  import imx_friend_info.sql ...
2011-10-11 09:34:04.872834482  ok.
2011-10-11 09:34:04.874078937  import imx_initial_info.sql ...
2011-10-11 09:34:05.367940098  ok.
2011-10-11 09:34:05.369138640  import imx_invite_code.sql ...
2011-10-11 09:34:07.342959572  ok.
2011-10-11 09:34:07.344680762  import imx_invite_mail.sql ...
2011-10-11 09:34:07.392519479  ok.
2011-10-11 09:34:07.394111627  import imx_mobile_verify.sql ...
2011-10-11 09:34:07.426966183  ok.
2011-10-11 09:34:07.428645884  import imx_notice_file.sql ...
2011-10-11 09:34:07.467136650  ok.
2011-10-11 09:34:07.468773264  import imx_notice_info.sql ...
2011-10-11 09:34:07.505940231  ok.
2011-10-11 09:34:07.507640833  import imx_notice_target.sql ...
2011-10-11 09:34:07.555095849  ok.
2011-10-11 09:34:07.556690248  import imx_online_info.sql ...
2011-10-11 09:34:07.614371055  ok.
2011-10-11 09:34:07.615494464  import imx_organ_info.sql ...
2011-10-11 09:34:07.745543035  ok.
2011-10-11 09:34:07.747258546  import imx_score_info.sql ...
2011-10-11 09:34:07.779355618  ok.
2011-10-11 09:34:07.780951250  import imx_staff_info.sql ...
2011-10-11 09:34:07.823617740  ok.
2011-10-11 09:34:07.825383986  import imx_stat_account.sql ...
2011-10-11 09:34:08.017936092  ok.
2011-10-11 09:34:08.019084699  import imx_support_account.sql ...
2011-10-11 09:34:08.209795503  ok.
2011-10-11 09:34:08.211449420  import imx_support_group.sql ...
2011-10-11 09:34:08.244669472  ok.
2011-10-11 09:34:08.246335445  import imx_support_guest.sql ...
2011-10-11 09:34:08.318735957  ok.
2011-10-11 09:34:08.319916064  import imx_support_website.sql ...
2011-10-11 09:34:08.459849382  ok.
2011-10-11 09:34:08.461482996  import imx_table_usage.sql ...
2011-10-11 09:34:08.491965510  ok.
2011-10-11 09:34:08.493572891  import imx_voter_candidate.sql ...
2011-10-11 09:34:08.525877454  ok.
2011-10-11 09:34:08.527490442  import imx_voter_staff.sql ...
2011-10-11 09:34:08.556744365  ok.
2011-10-11 09:34:08.558347304  import imx_voter_type.sql ...
2011-10-11 09:34:08.589861577  ok.
2011-10-11 09:34:08.591476894  import imx_voter_voted.sql ...
2011-10-11 09:34:08.621496564  ok.
2011-10-11 09:34:08.623158444  done.
[root@sunrise16 scripts]#

 

相关博文

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

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

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

 

 

4
4
分享到:
评论

相关推荐

    如何导入导出mysql数据库

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

    mysql数据导入导出

    MySQL 提供了多种方式来导出数据,其中最常用的就是 `mysqldump` 命令。通过这个命令,用户可以灵活地导出整个数据库或者指定的表。 ##### 1. 导出整个数据库 使用 `mysqldump` 命令导出整个数据库的基本语法如下...

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

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

    MYSQL导入导出数据库命令

    MySQL提供了多种命令行工具来帮助用户导入和导出数据,这对于数据迁移、备份和恢复至关重要。这篇知识分享将专注于MySQL的导入和导出命令。 首先,我们来看导出数据库的命令。`mysqldump`是MySQL提供的一个实用程序...

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

    在IT行业中,数据库管理和数据迁移是常见的任务,而Bash脚本和MySQL是完成这些任务的强大工具。本文将深入探讨如何在Bash环境...通过学习和实践,你可以熟练掌握在Linux环境下使用MySQL和Bash进行高效的数据导入导出。

    mysql数据库导出设计文档工具_全jar

    "mysql数据库导出设计文档工具_全jar" 提供了一种高效的方式来快速导出MySQL数据库的结构文档,尤其适合在Windows操作系统环境下使用。 这个工具的主要功能是帮助数据库管理员和开发人员生成详细的数据库设计文档,...

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

    本篇文章将详细讲解如何利用Python工具实现Excel数据的批量导入到MySQL数据库,以及如何优化这一过程,使得几千万的数据能够在半小时内完成导入。 首先,我们需要了解Python中用于操作Excel的主要库——pandas。...

    导入导出数据库 mysql

    ### 导入导出数据库 MySQL 快速上手 在日常的数据库管理工作中,经常会遇到需要备份或迁移数据的情况。MySQL 提供了多种工具来帮助我们进行数据的导入与导出,其中最常用的就是 `mysqldump` 命令。本篇文章将详细...

    MySQL数据导入与导出

    `mysqldump`是MySQL自带的一个强大的备份工具,不仅可以导出表结构,还能同时导出数据,非常适用于数据迁移或备份场景。其基本语法如下: ```bash mysqldump [options] database [tables] ``` 例如,若想导出名为`...

    恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库

    本篇文章主要探讨的是如何将由MySQL数据库产生的.frm、.myd 和 .myi 文件转换为 .sql 文件,并最终导入到MySQL数据库中的过程。在实际操作中,这些文件分别承担着不同的角色——.frm 文件负责存储表结构信息,.myd ...

    MySQL数据库中导入导出方法以及工具介绍

    ### MySQL数据库中导入导出方法以及工具介绍 在IT领域,特别是对于数据库管理与维护的专业人士而言,理解和掌握数据的导入导出操作是至关重要的技能之一。MySQL作为全球广泛使用的开源关系型数据库管理系统,提供了...

    docker + mysql数据库备份脚本.pdf

    本文档提供了一份使用 Docker 容器备份 MySQL 数据库的 Bash 脚本。该脚本使用了 MySQL 命令行工具 mysqldump 对数据库进行备份。 知识点一:Docker 容器的使用 ------------------------- Docker 是一个容器化...

    linux下数据库dump的导入导出

    在Linux操作系统中,数据库的导入导出是数据库管理员日常工作中不可或缺的部分,特别是在系统迁移、备份恢复或性能优化等场景中。本篇文章将详细介绍如何在Linux环境下进行数据库的dump(备份)以及如何导入这些备份...

    linux下shell脚本实现数据的导出

    在Linux环境下,shell脚本是自动化任务的强大工具,尤其对于数据导出这样的操作,通过编写shell脚本可以方便地实现定期备份或者按需导出。本文将深入讲解如何使用shell脚本来实现数据的导出,并结合Java代码进行调用...

    使用mysqldump命令导出MYSQL数据库

    - `--no-create-info` 只导出数据,不包含创建表的SQL语句。 - `--lock-tables` 在导出期间锁定所有表,确保数据的一致性。 在实际操作中,你可能需要根据特定需求来组合使用这些选项。 接下来,我们讨论一下`...

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

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

    用JAVA导出MYSQL的数据

    以下是一个简单的Java示例,展示了如何调用`mysqldump`命令来导出数据: ```java package com; import java.io.*; public class Test { private static final String PATH = "d:/dev_wzerp_v10.sql"; public ...

Global site tag (gtag.js) - Google Analytics