我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在shell脚本中连接mysql并进行相关操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在shell脚本中连接mysql并进行相关操作

在实际使用中,有时候需要定时的对数据库进行一些重复的操作。这样通过脚本的方式能更好的降低出错率并提高速度

连接数据库,我们可以封装一个函数来操作。方便进行数据的传递。将相关参数进度对应的传递。分析脚本我们可以知道就是将sql脚本以here文档的格式传递给mysql。

do_mysql(){    mysql -h${host} -P${port} -u${account} -p${password} -D${database} -N -r -B << EOF    ${1}EOF    }

那么我们就可以使用另一种直接传递文件的格式去传递sql语句

mysql -u ${account} -p${password} < table.sql

sql脚本的内容: use test; INSERT INTO media_session_20220831 (`session`, `meida_type`) VALUES(181026278212063, 'video');
对比会发现直接写在shell里的语句还是有区别的。在shell脚本中。符合’`'引起来的东西会被当做命令去解析。
也可以这样

echo "show databases;" | mysql -uroot -p123456

读取文件内容的方式,通过while循环实现

while read linedo    echo $line   media_type=`echo $line|awk '{print $2}'`done < media_session.txt
  • 每次读取文件的一行信息
  • 行信息中列信息的获取使用awk来实现

整体的使用方式

#!/bin/bash#连接mysqldatabase=testhost=ipport=3306account=rootpassword=passwordtable_media=media_session_$(date +%Y%m%d)table_data=statics_data_$(date +%Y%m%d)#txt数据文件的路径及文件名script=${1:-"media_session.txt"}do_mysql(){    mysql -h${host} -P${port} -u${account} -p${password} -D${database} -N -r -B << EOF    ${1}EOF    }#连接数据库并执行create_tables(){mysql -u ${account} -p${password} <<EOF use ${database};CREATE TABLE ${table_media} (session varchar(255) COLLATE utf8_bin DEFAULT NULL,meida_type varchar(255) COLLATE utf8_bin DEFAULT NULL,id bigint(12) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id))ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;;show tables;EOF}# 插入session和media的关系insert_data(){while read linedo    media_type=`echo $line|awk '{print $2}'`   session=`echo $line|awk '{print $1}'` #   echo ${session}#   echo ${media_type}   do_mysql "INSERT INTO ${table_media} (session, meida_type) VALUES(${session}, '${media_type}');"done < ${script}}# 生成数据static_data(){do_mysql "CREATE TABLE ${table_data}  as select a.session '会话id',case b.dial_type when 1 then '外呼'when 2 then '入呼' else '其他' end '呼叫类型',b.ani '主叫',b.dnis '被叫',b.meeting_create_time '呼叫时间',case a.meida_type when 'audio' then '音频' when 'video' then '视频' else '其他'  end '媒体类型' from test.${table_media} a left join vcc.t_meeting_detail b on a.session=b.session_id;"}create_tablesinsert_datastatic_data

来源地址:https://blog.csdn.net/jjt_zaj/article/details/126638980

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在shell脚本中连接mysql并进行相关操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在shell脚本中连接mysql并进行相关操作

在实际使用中,有时候需要定时的对数据库进行一些重复的操作。这样通过脚本的方式能更好的降低出错率并提高速度 连接数据库,我们可以封装一个函数来操作。方便进行数据的传递。将相关参数进度对应的传递。分析脚本我们可以知道就是将sql脚本以he
2023-08-19

如何在VS Code连接MySql数据库并进行查询操作

这期内容当中小编将会给大家带来有关如何在VS Code连接MySql数据库并进行查询操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用方法Step1. 安装 Visual Studio CodeVS
2023-06-06

VS2022连接数据库MySQL并进行基本的表的操作指南

vs2022中连接mysql1.连接MYSQL2.添加MySQL的引用环境配置测试代码在vs里面运行sql语句启动vs2022,在菜单栏里面选择视图,打开服务器资源管理器右键数据连接,点击添加连接然后发现有MySQL选项,进入里
2023-05-12

如何在MySQL中进行跨表查询和连接操作

在MySQL中进行跨表查询和连接操作通常使用JOIN语句来实现。以下是一些常用的跨表查询和连接操作方式:内连接(INNER JOIN):返回两个表中有匹配关系的记录。SELECT * FROM table1INNER JOIN table
如何在MySQL中进行跨表查询和连接操作
2024-04-09

Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)

本文章详细讲解了如何使用Python安全地连接MySQL数据库并进行数据操作。为了建立安全连接,需配置数据库访问权限、使用SSL加密和密码。Python中的连接配置可通过mysql.connector库实现。数据交互操作包括创建游标、执行查询、获取结果、修改数据和提交更改。安全性最佳实践建议遵循最小权限原则、定期更改密码、使用防火墙、IDS和保持软件更新。
Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)
2024-04-02

编程热搜

目录