一种基于shell脚本批量创建MYSQL表的方法 |
您所在的位置:网站首页 › 创建表的方法有 › 一种基于shell脚本批量创建MYSQL表的方法 |
目录 0 引 言 1 基本知识 2 脚本编写 3 实验测试 4 小 结 0 引 言工作中经常需要在数据库中进行建表操作,无论是使用数据库一些工具或手动建表都比较麻烦,需要用户一个个输入字段进行建立或一个个执行sql脚本,无论是哪种方式都比较费力,影响工作效率,那么有没有一种快速批量执行sql文件的形式进行批量建表的方法呢?这里就需要用shell脚本调用sql文件的形式进行批量建表。本文针对上述问题,探讨了一种批量建立MYSQL数据库表的方法,给出了批量执行sql文件的脚本,并对脚本主要的语法进行分析,该脚本在实验中得到了测试认证,效果良好。 1 基本知识(1)awk用法 参考链接如下 https://blog.csdn.net/godlovedaniel/article/details/104755897 下面对本脚本使用的语句进行解释 echo $file | awk -F'.' '{print "."$NF}' 输入为: echo $file,为遍历目录后每个文件的名字 awk -F'.' '{print "."$NF}':表示以.号分隔,输入的每一条记录,并且打印最后一个字段,输出以.号输出。NF:表示字段的个数。$NF:就表示最后一个字段。由于每个文件的命名结尾都是sql,所以最终得到的为.sql。 该语句在此的作用就是,获取后缀,进行下一步的条件匹配,对sql文件进行过滤。 (2)read -p Linux read命令用于从标准输入读取数值。 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。 -p 后面跟提示信息,即在输入前打印提示信息。如: #!/bin/bash read -p "输入网站名:" website echo "你输入的网站名是 $website" exit 0 测试结果为: 输入网站名:https://blog.csdn.net/godlovedaniel/article/details 你输入的网站名是 https://blog.csdn.net/godlovedaniel/article/details如果 -p后指定的变量在脚本中定义且赋值,则取变量赋值后的值,如果没有赋值,则从控制台中进行输入 (3)连接MYSQL执行sql脚本 mysql -h${host} -u${user} -p${db_pass} -P${port} --default-character-set=utf8 ${db_name} < ${file} -h:指定连接的主机地址 -u:登录的用户 -p:数据库连接密码 -P:端口 输入为${file}:表示sql脚本,将输入的sql脚本在MYSQL中进行执行。 shell脚本中执行sql脚本的几种种方式:(shell脚本调用sql文件) 注意:sql文件和脚本文件在同一路径下,或不在同一路径下,将sql文件写成绝对路径如:/home/centos/test/test.sql mysql -H主机地址 -P 端口号 -u用户名 -p密码 < test.sql (管道符调用sql文件)mysql -H主机地址 -P 端口号 -u用户名 -p密码 -e "source test.sql" (命令行调用sql文件)mysql -H主机地址 -P 端口号 -u用户名 -p密码 -e "\. test.sql"mysql -H主机地址 -P 端口号 -u用户名 -p密码 >${LOG_FILE} #输出执行日志 error=`grep ERROR error.log` #读取错误日志信息 if [ -n "$error" ] ; then #如果有错误就退出程序 echo $error exit fi else echo "您已经取消操作!" exit fi fi fi done 3 实验测试进入脚本的目录,执行该脚本 [root@bigdata3 TOOLS]# ./create_mysql_table_batch.sh '/home/centos/phm/MYSQL/appv_power'执行结果如下: 到MYSQL数据库中查看表已经创建 ,如下图所示: 本文研究了一中MYSQL批量建表的方法,给出了具体脚本程序,并对程序中关键点进行了分析,读者可根据自己环境需求对脚本进行稍加改造便可使用,该脚本已在环境中进行测试,结果可靠。 本文主要要点: (1)shell脚本中调用sql文件的方法(4种)(2)read -p的用法(3)echo关闭显示的用法。stty -echo(4)echo -e 的用法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |