导出MySQL数据库模式及数据的Bash脚本 真的很好用!

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

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

 

Bash脚本文件:export_db.sh

 

#!/bin/sh

# export_db.sh
# 导出数据库模式及数据
# codingstandards@gmail.com
# v1: 2010-05-23
# v2: 2011-10-08/09

# 命令使用说明
# 从标准输入读取数据库名称和表名称
# usage: export_db.sh
# usage: export_db.sh -
# 从指定文件读取数据库名称和表名称
# usage: export_db.sh db_and_tables.txt
# 通过here string指定数据库名称和表名称
# usage: export_db.sh <<<"dbname"
# usage: export_db.sh <<<"dbname tablename"

# 输入格式说明
# 由一行或多行组成,可以是下列之一:
# (1) 空行:将被忽略
# (2) 注释:以#开头的行,将被忽略
# (3) db_name:只指定数据库名字,该数据库中的所有表都将被导出
# (4) db_name table_name:指定数据库名称和表名称,只导出该表

# 数据库连接参数
# TODO: 修改下面的参数以适应数据库的设置
DBOPTS="-pxxx --default-character-set=gbk"


# 保存到目录
# TODO: 可设置为本脚本所在目录,也可以设置在别的目录
SAVETO=$(dirname "$0")


# 如果在crontab中执行,需加上下面这行,以保证环境变量正确设置
. /etc/profile

# 进入到保存目录
cd "$SAVETO" || exit 1

# 导出目录,格式为:dbYYYYmmddHHMMSS,比如 db20111008100923
DIR=db$(date +%Y%m%d%H%M%S)
mkdir -p "$DIR"

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

# 执行SQL语句,输出执行结果
# usage: db_exec <db> <sql>
db_exec()
{
        mysql $DBOPTS -s "$1" -e "$2"
}

# 导出数据库到文件,分目录保存数据库,分文件保存数据表
# usage: db_dump <db> <table>
db_dump()
{
        #echo -n "$1 $2   "
        #db_exec "$1" "select count(*) from $2"
        local count=$(db_exec "$1" "select count(*) from $2")
        printf "$(now)  %-32s%16s\n" "$1.$2" "$count"
        mkdir -p "$DIR/$1"
        mysqldump $DBOPTS --quick --add-drop-table "$1" "$2" >"$DIR/$1/$2.sql"
        echo "$(now)  ok."
}

# 从命令行的第一个参数指定的文件读取需要导出的数据库和表的名称,然后导出
#cat "${1:-export_db.txt}" |
#cat "$1" |
cat $1 |
while read db_name table_name;
do
        #echo "$db_name $table_name"
        if [ "$db_name" -a "${db_name:0:1}" != "#" ]; then      # 忽略空行和注释
                if [ ! "$table_name" ]; then    # 如果没有指定表的名称,就认为是导出整个数据库
                        db_exec "$db_name" "show tables" |
                                while read table_name;
                                do
                                        db_dump "$db_name" "$table_name";
                                done
                else    # 导出指定的数据库中的表
                        db_dump "$db_name" "$table_name"
                fi
        fi
#done &> $DIR/export_db.log
done 2>&1 | tee $DIR/export_db.log

# 如果没有任何表导出,就把$DIR目录删除
if [ ! "$(ls $DIR/*/*.sql 2>/dev/null)" ]; then
        echo "$(now)  no tables dumped!"
        rm -rf $DIR
        exit 2
fi

# 将导出的文件压缩
tar zcf $DIR.tar.gz $DIR
echo "$(now)  $DIR.tar.gz generated." | tee -a $DIR/export_db.log

# END.

使用实例

[root@sunrise16 scripts]# ./export_db.sh <<<"imx"
2011-10-10 10:01:02.354521930  imx.imx_account_info                        1814
2011-10-10 10:01:02.599235299  ok.
2011-10-10 10:01:02.607423679  imx.imx_account_invite                         3
2011-10-10 10:01:02.636247793  ok.
2011-10-10 10:01:02.645773939  imx.imx_account_score                        204
2011-10-10 10:01:02.659308422  ok.
2011-10-10 10:01:02.667428147  imx.imx_address_book                           0
2011-10-10 10:01:02.678375340  ok.
2011-10-10 10:01:02.686491205  imx.imx_blog_guest                             0
2011-10-10 10:01:02.697385973  ok.
2011-10-10 10:01:02.705563054  imx.imx_blog_info                              0
2011-10-10 10:01:02.716411413  ok.
2011-10-10 10:01:02.725761396  imx.imx_candidate_score                     1560
2011-10-10 10:01:02.779894375  ok.
2011-10-10 10:01:02.788334192  imx.imx_candidate_set_staff                    0
2011-10-10 10:01:02.799278729  ok.
2011-10-10 10:01:02.816682546  imx.imx_candidate_set_type                     0
2011-10-10 10:01:02.827634837  ok.
2011-10-10 10:01:02.835702877  imx.imx_candidate_staff                      156
2011-10-10 10:01:02.853453367  ok.
2011-10-10 10:01:02.861528243  imx.imx_candidate_type                         0
2011-10-10 10:01:02.872491956  ok.
2011-10-10 10:01:02.892560159  imx.imx_chat_deliver                      122181
2011-10-10 10:01:09.973991871  ok.
2011-10-10 10:01:09.986801726  imx.imx_chat_info                           2985
2011-10-10 10:01:10.132049666  ok.
2011-10-10 10:01:10.148555010  imx.imx_chat_submit                        38783
2011-10-10 10:01:12.066791839  ok.
2011-10-10 10:01:12.083448281  imx.imx_contact_detail                         0
2011-10-10 10:01:12.094639631  ok.
2011-10-10 10:01:12.106523345  imx.imx_contact_info                           0
2011-10-10 10:01:12.117118053  ok.
2011-10-10 10:01:12.127521043  imx.imx_dept_info                             34
2011-10-10 10:01:12.139877683  ok.
2011-10-10 10:01:12.166498673  imx.imx_email_verify                         146
2011-10-10 10:01:12.189277872  ok.
2011-10-10 10:01:12.197395616  imx.imx_file_inbox                          4475
2011-10-10 10:01:12.448522775  ok.
2011-10-10 10:01:12.755795734  imx.imx_file_info                            476
2011-10-10 10:01:13.584651069  ok.
2011-10-10 10:01:13.992323738  imx.imx_friend_group                          25
2011-10-10 10:01:14.087335222  ok.
2011-10-10 10:01:14.541748370  imx.imx_friend_info                         1746
2011-10-10 10:01:15.517113264  ok.
2011-10-10 10:01:15.553167179  imx.imx_initial_info                       22382
2011-10-10 10:01:16.555686514  ok.
2011-10-10 10:01:16.573180784  imx.imx_invite_code                           67
2011-10-10 10:01:16.594144070  ok.
2011-10-10 10:01:16.602299380  imx.imx_invite_mail                            6
2011-10-10 10:01:16.622453217  ok.
2011-10-10 10:01:16.634810130  imx.imx_mobile_verify                        131
2011-10-10 10:01:16.650483030  ok.
2011-10-10 10:01:16.662518780  imx.imx_notice_file                            0
2011-10-10 10:01:16.673121562  ok.
2011-10-10 10:01:16.681317944  imx.imx_notice_info                          138
2011-10-10 10:01:16.718013398  ok.
2011-10-10 10:01:16.734655172  imx.imx_notice_target                          0
2011-10-10 10:01:16.745284656  ok.
2011-10-10 10:01:16.760210358  imx.imx_online_info                          993
2011-10-10 10:01:16.830574327  ok.
2011-10-10 10:01:16.838868472  imx.imx_organ_info                             4
2011-10-10 10:01:16.851086794  ok.
2011-10-10 10:01:16.859600254  imx.imx_score_info                             0
2011-10-10 10:01:16.870817549  ok.
2011-10-10 10:01:16.878974270  imx.imx_staff_info                           257
2011-10-10 10:01:16.937265547  ok.
2011-10-10 10:01:16.948347469  imx.imx_stat_account                        4742
2011-10-10 10:01:17.121570803  ok.
2011-10-10 10:01:17.135223653  imx.imx_support_account                        7
2011-10-10 10:01:17.146104366  ok.
2011-10-10 10:01:17.153290478  imx.imx_support_group                          4
2011-10-10 10:01:17.163811216  ok.
2011-10-10 10:01:17.173859372  imx.imx_support_guest                       1501
2011-10-10 10:01:17.241321120  ok.
2011-10-10 10:01:17.248754779  imx.imx_support_website                        3
2011-10-10 10:01:17.259606462  ok.
2011-10-10 10:01:17.266724062  imx.imx_table_usage                            0
2011-10-10 10:01:17.276016715  ok.
2011-10-10 10:01:17.283055274  imx.imx_voter_candidate                        0
2011-10-10 10:01:17.292275163  ok.
2011-10-10 10:01:17.299291947  imx.imx_voter_staff                            0
2011-10-10 10:01:17.308706276  ok.
2011-10-10 10:01:17.315633319  imx.imx_voter_type                             0
2011-10-10 10:01:17.325035422  ok.
2011-10-10 10:01:17.332355040  imx.imx_voter_voted                            0
2011-10-10 10:01:17.343331839  ok.
2011-10-10 10:01:19.490116346  db20111010100102.tar.gz generated.
[root@sunrise16 scripts]# tree db20111010100102
db20111010100102
|-- export_db.log
`-- imx
    |-- imx_account_info.sql
    |-- imx_account_invite.sql
    |-- imx_account_score.sql
    |-- imx_address_book.sql
    |-- imx_blog_guest.sql
    |-- imx_blog_info.sql
    |-- imx_candidate_score.sql
    |-- imx_candidate_set_staff.sql
    |-- imx_candidate_set_type.sql
    |-- imx_candidate_staff.sql
    |-- imx_candidate_type.sql
    |-- imx_chat_deliver.sql
    |-- imx_chat_info.sql
    |-- imx_chat_submit.sql
    |-- imx_contact_detail.sql
    |-- imx_contact_info.sql
    |-- imx_dept_info.sql
    |-- imx_email_verify.sql
    |-- imx_file_inbox.sql
    |-- imx_file_info.sql
    |-- imx_friend_group.sql
    |-- imx_friend_info.sql
    |-- imx_initial_info.sql
    |-- imx_invite_code.sql
    |-- imx_invite_mail.sql
    |-- imx_mobile_verify.sql
    |-- imx_notice_file.sql
    |-- imx_notice_info.sql
    |-- imx_notice_target.sql
    |-- imx_online_info.sql
    |-- imx_organ_info.sql
    |-- imx_score_info.sql
    |-- imx_staff_info.sql
    |-- imx_stat_account.sql
    |-- imx_support_account.sql
    |-- imx_support_group.sql
    |-- imx_support_guest.sql
    |-- imx_support_website.sql
    |-- imx_table_usage.sql
    |-- imx_voter_candidate.sql
    |-- imx_voter_staff.sql
    |-- imx_voter_type.sql
    `-- imx_voter_voted.sql

1 directory, 44 files
[root@sunrise16 scripts]#

2022中山大学计算机技术专硕考研初试、复试经验帖 个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧。可以帮助节省时间! 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 机试 笔试 面试 关于选导师 个人感言 阅读详情

相关推荐

keil4.72添加GD32F10x芯片

1. 下载 GD32F10x_AddOn_V2.0.1.rar,解压缩。 2. 安装 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe 安装位置 再新建工程,发现已经有GD32F10x 3. 增加的文件分析 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe后,在keil文件夹种增加文件如下: ...

TrueLink的博客 2762

Linux下导入导出 MySQL 数据库表结构数据

一、导出数据库 1、导出完整数据:表结构+数据 使用mysqldump命令来导出数据库,语法格式如下: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql mysqldump -h localhost -uroot -p123456 database > dump.sql 注意: 1. 密码可以直接在命令行输入也可以回车后输入,如果在命令行输入...

Li_suhuan的博客 1万+

手把手教你用CH340给正点原子ESP8266烧录固件(附串口调试技巧)

本文详细讲解了使用CH340模块为正点原子ESP8266烧录AT固件的完整流程与关键技巧。核心在于烧录时必须使用3.3V供电,并正确连接GPIO0引脚至GND以进入下载模式。文章涵盖了从硬件接线、软件参数配置到烧录后串口调试验证的全步骤,并提供了常见问题排查方案,帮助开发者一次性成功完成固件烧录。

weixin_29201933的博客 231

导入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 ...

巨人站在肩膀上 254

KTransformers安装笔记 利用docker安装KTransformers

KTransformers安装笔记 利用docker安装KTransformers

guoqingru0311的博客 1559

【hadoop编译报错】(yarn install) on project hadoop-yarn-applications-catalog-webapp Failed to run task

ambari+bigtop自定义组件集成

TTBIGDATA的博客 1803

Mysql导出SQL脚本和导入SQL脚本

Mysql导出库表结构和数据和导入脚本到数据库 1.命令导出:mysqldump -u用戶名 -p密码  数据库名 表名 &gt; 脚本名; 常见选项:--alldatabases, -A: 备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项。 mysqldump把第一个名字参数作为数据库名,后面的作为表名 多个表名用空格隔开。使用该选项,mysqldum...

linry的博客 7万+

宏基因组分析|完整分析流程梳理

今天先从最基础的全流程框架说起,无论是刚接触的萌新,还是想查漏补缺的同行,都能找到有用的信息。

weixin_70911870的博客 3163

shell脚本实现连接mysql数据库,并将结果输出到文本文件中

本文分享下自己在学习shell过程中如何连接数据库的脚本,本人使用的是MySQL5.7,在连接过程中遇到了一个麻烦,总是报错:Using a password on the command line interface can be insecure.大致意思就是:在命令行界面上使用密码可能不安全。后来在网上查了下大多数解决情况就是更改mysql配置文件my.conf或者将错误信息重定向到/dev...

浩瀚蓝天dep的博客 1万+

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1251

Unity 面试篇|(三)设计模式篇 【全面总结 | 持续更新 | 建议收藏】

设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。设计模式与方法或库的使用方式不同, 你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。常常会混淆模式和算法, 因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤, 而模式则是对解决方案的更高层次描述。同一模式在两个不同程序中的实现代码可能会不一样。单例模式。

游戏开发小Y的博客 12万+

shell脚本导出mysql数据库数据到文件

/usr/bin/mysql -uroot -p******** -h******** table_name -A --default-character-set=utf8 -N -e “SELECT 1 FROM dual” &gt; /tmp/date +%Y%m%d -d -1day.txt -A 取消检查 -N 不输出列头 -e sql语句 ...

lfwer的博客 3937

Python接入企业微信群机器人图文教程,实现恐贪指标自动触发微信消息提醒功能!Python 企业微信 群机器人 消息提醒 Webhook 企业微信接口

✅ 企业微信群机器人的添加方式;✅ 如何获取 Webhook 地址;✅ Python 如何用 requests 发消息;✅ 如何在实际业务中触发自动提醒;这种方式不仅适合个人开发者、测试人员,也适用于小团队、运维通知等场景,部署简单、触发灵活、响应及时!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 915

bash mysql 循环输出_导出MySQL数据库模式及数据的Bash脚本 真的很好用!

导出MySQL数据库模式及数据的Bash脚本Bash脚本文件:export_db.sh#!/bin/sh# export_db.sh# 导出数据库模式及数据# codingstandards@gmail.com# v1: 2010-05-23# v2: 2011-10-08/09# 命令使用说明# 从标准输入读取数据库名称和表名称# usage: export_db.sh# usage: expo...

weixin_35595485的博客 269

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux的shell脚本:如何用bash脚本从mysql数据库中直接读取用户数据,并直接显示出来(一条命令查看数据库信息)

在进行视频监控平台的录像点播功能测试的时候,发现客户量增加到几千个的时候,会出现一些问题。这个时候,经常需要查看用户表,进入mysql命令行,非常麻烦。需要一个命令就可以查看用户相关数据。使用linux的bash脚本是一个比较便捷的方法。 在Linux的Bash脚本中,可以使用MySQL的命令行接口(CLI)提供的所有功能。这意味着可以执行几乎所有的MySQL操作,包括数据库管理、数据查询、数据修改、权限管理等。编写脚本时,确保处理用户输入和数据库操作时要小心,以避免SQL注入攻击和其他安全问题。

weixin_70208651的博客 1564

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Mysql数据库管理脚本

前言 测试环境 系统:cenros7 数据库版本: Mysql5.7 功能介绍 列出所有库使用情况 【数据库 记录数 数据容量(MB) 索引容量(MB) 】 列出所有表的使用情况 【数据库 表名 记录数 数据容量(MB) 索引容量(MB)】 导出库和表的所有数据到当前脚本路径 导出指定表的所有数据到当前脚本 自定义创建一个新库,导入还原指定库或者表的备份数据 退出脚本 #!/bin/bash #作用:Mysql数据库管理小脚本 #日期:2020-12-23 read -

King config 9842

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

导入MySQL数据库模式及数据的Bash脚本(改进版本)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-charact...

weixin_39531834的博客 600

Bash语言的数据库编程

Bash(Bourne Again SHell)是GNU项目的一部分,是Linux和macOS环境中最常用的命令行解释器。Bash支持命令的执行、脚本的编写和程序的自动化,尽管它并不是专为数据库操作设计的,但凭借其强大的文本处理能力,Bash在数据库管理方面也展现出了独特的优势。

2501_90183910的博客 830

mysql使用export导出数据_Mysql导出数据库(Mysql Export Database)

Mysql导出数据库(Mysql Export Database)我有一个主机,其中包含一些数据库问题是我无法访问MySQL。数据库位于.ibd / .frm中我有几个问题:我不知道mysql的密码(我没有创建它),也不知道如何重置它我不知道如何导出数据库。 我试图安装phpmyadmin,但因为我不知道密码,所以无法连接我试图与Mysql Workbench连接,但是我得到了结果:无法连接到my...

weixin_36177953的博客 1599

bash mysql 导出csv_Bash中使用MySQL导入导出CSV格式数据

MySQL中导出CSV格式数据的SQL语句样本如下:Java代码 select*fromtest_infointooutfile'/tmp/test.csv'fieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';select * from test_info into ...

weixin_29442195的博客 239

linux的bash脚本:通过脚本编程来实现访问数据库表,并从ftp服务器上下载指定的文件

Bash(Bourne-Again SHell)是Linux和Unix系统中广泛使用的一种命令行解释器,它是Bourne shell(sh)的一个增强版本。Bash脚本是一种基于Bash的脚本编程语言,它允许用户编写包含一系列命令的脚本,以便自动化执行常见的任务、管理操作系统、进行数据处理等。要连接 MySQL 数据库,从 数据库表中查询 ImageID 的 图片位置 字段值(即图片在 FTP 服务器上的位置),然后使用 ftp 工具将该图片下载到本地 指定目录。若采用ftps, lftp 中启用 SSL。

weixin_70208651的博客 1220
上一篇: Bash字符串处理(与Java对照) - 17.判断是否以另外的字符串结尾
下一篇: 导入MySQL数据库模式及数据的Bash脚本 (导出的姊妹篇)
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值