导入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]#
相关博文
【2】我使用过的Linux命令之mysql - MySQL客户端命令行工具