shell导出mysql数据库表结构

工作中有遇到,需要批量操作一些sql语句的地方。
比如,让我把一个库的表结构导出来。
mysql有命令支持这个功能:

mysqldump --opt -d xxxxx -uxxxx -pxxxx > /opt/chargegateway.sql

但是工作中的数据库对这个指令支持不是很好。
so使用脚本批量执行了show create table

这里只要是想记录下需要使用<<EOF语法

< <用法

当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行),再返回到主调Shell。
这个分界符可以是你所定义的任何字符串,一般标准用EOF,用别的字符串也是同样功效。

所以在脚本里可以< <和EOF配合使用,处理那些需要先进入命令行下,再输入命令的脚本操作。比如,先连接mysql,在执行一系列批量的建表,导出表的语句操作。

#!/bin/sh 
for line in `cat tablefile` 
do   
  echo $line  
  mysql -hxx.xx.xx.xx -P3306 -uxxxx -p8650b9d5E8 -Dxxxx <<EOF   
  show create table $line\G;   
  exit 
EOF 
done

执行脚本从tablefile文件中读出所有表,循环执行,导出建表语句。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,240评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,628评论 9 467
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,208评论 3 53
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 4,833评论 1 57
  • 我突然发现了一件非常神奇的事情。 咱班这一月4个人过生日。 日子的时间都在金牛座范围内。 而金牛座对钱很敏感,且是...
    zhi安阅读 242评论 0 0