`

导入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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics