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

目录

一、要求

二、脚本和解释

三、脚本执行

1、 脚本保存为sh文件

2、给脚本赋予执行权限

3、运行脚本

四、Bash脚本中,可以使用哪些MySQL语句

1、连接到MySQL数据库  

2、执行SQL语句  

3、查询并显示结果  

4、脚本中执行SQL文件  

5、数据库操作  

6、表操作  

7、数据插入  

8、数据更新  

9、数据删除  

10、. 用户和权限管理

五、注意事项


一、要求

        在进行视频监控平台的录像点播功能测试的时候,发现用户数据增加到接近1万条的时候,会出现一些问题。这个时候,经常需要查看用户表,了解用户表的变化情况,每次需要手工进入mysql命令行,非常麻烦。有没有办法,一个命令就可以查看用户相关数据呢?

        使用linux的bash脚本是一个比较便捷的方法。如何用bash脚本从mysql数据库中读取用户数据并直接显示出来?

二、脚本和解释

        直接把脚本列出来,如下:

#!/bin/bash # 如下为MySQL数据库连接信息 ,可以替换为实际的连接信息
DB_HOST="localhost" 
DB_USER="avs_username" 
DB_PASS="avs_password" 
DB_NAME="avs_database_name" 
TABLE_NAME="avs_table_name"  # 使用mysql命令行工具从表中读取数据 
mysql -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME -e "SELECT * FROM $TABLE_NAME;"## 实际使用时,需要将avs_username、avs_password、avs_database_name和avs_table_name替换为您的实际MySQL连接信息。

三、脚本执行

1、 脚本保存为sh文件

        使用vim工具,编辑read_mysql_user.sh文件,如下:

                vim read_mysql_user.sh

        编辑完成后,保存、退出。

2、给脚本赋予执行权限

        使用chmod命令给脚本执行权限,使用如下命令:

                chmod +x read_mysql_user.sh

        执行结果如下:

3、运行脚本

        现在你可以运行脚本并查看从MySQL表中检索到的数据:

[root@ecs-52a1 home]#
[root@ecs-52a1 home]# sh read_mysql_user.sh
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------------------------------+-------------------------------------+------------+--------+-----------+---------------------+
| id                               | realname                            | username   | RoleId | create_by | create_time         |
+----------------------------------+-------------------------------------+------------+--------+-----------+---------------------+
| 1793647071589376001              | 杨A                                 | newtest    | 4      | admin     | 2024-05-23 22:16:01 |
| 1793809237772673025              | 河北OH信息技术-M老师                 | hbouhaojs  | 6      | admin     | 2024-05-24 09:00:24 |
| 1793809332010295298              | 肖总                                | xiao_guest | 7      | admin     | 2024-05-24 09:00:47 |
| 1793809416349360130              | webtest                             | webtest    | 5      | admin     | 2024-05-24 09:01:07 |
| 1795286877142589442              | Z超                                 | zongchao   | 5      | admin     | 2024-05-28 10:52:01 |
| e9ca23d68d884d4ebb19d07889727dae | 管理员                              | admin      | NULL   | NULL      | 2038-06-21 17:54:10 |
+----------------------------------+-------------------------------------+------------+--------+-----------+---------------------+
[root@ecs-52a1 home]#
[root@ecs-52a1 home]#

四、Bash脚本中,可以使用哪些MySQL语句

        在Linux的Bash脚本中,可以使用MySQL的命令行接口(CLI)提供的所有功能。这意味着可以执行几乎所有的MySQL操作,包括数据库管理、数据查询、数据修改、权限管理等。以下是bash脚本中可以使用的MySQL语句的例子:

1、连接到MySQL数据库  

   mysql -u username -p  

   这段代码可以在脚本中用来提示用户输入密码后连接到MySQL数据库。

2、执行SQL语句  

   mysql -u username -p -e "YOUR_SQL_COMMAND"  

   -e 选项允许你直接在命令行中执行SQL命令。

3、查询并显示结果  

   mysql -u username -p -e "SELECT * FROM your_table" | less  

   使用管道将查询结果传递给 less 命令行文本查看器。

4、脚本中执行SQL文件  

   mysql -u username -p < your_sql_file.sql  

   将SQL文件的内容作为命令传递给MySQL。

5、数据库操作  

   mysql -u username -p -e "CREATE DATABASE your_database"

   mysql -u username -p -e "DROP DATABASE your_database"  

   创建或删除数据库。

6、表操作  

   mysql -u username -p -e "CREATE TABLE your_table (...)""

   mysql -u username -p -e "DROP TABLE your_table"  

   创建或删除表。

7、数据插入  

   mysql -u username -p -e "INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2')"  

   向表中插入数据。

8、数据更新  

   mysql -u username -p -e "UPDATE your_table SET column1='value1' WHERE condition"  

   更新表中的数据。

9、数据删除  

   mysql -u username -p -e "DELETE FROM your_table WHERE condition"  

   删除表中的数据。

10、. 用户和权限管理

        mysql -u username -p -e "GRANT ALL PRIVILEGES ON your_database.* TO 'user'@'localhost' IDENTIFIED BY 'password'"

        mysql -u username -p -e "REVOKE ALL PRIVILEGES ON your_database.* FROM 'user'@'localhost'"

        管理数据库用户和权限。

五、注意事项

        直接在脚本中硬编码数据库密码可能不是最佳做法,因为它可能导致安全风险。可以考虑使用其他方法(如环境变量、配置文件等)来管理敏感信息。在实际使用中,需要调整命令来避免在命令行中显示密码。

        在编写Bash脚本时,请确保处理用户输入和数据库操作时要小心,以避免SQL注入攻击和其他安全问题。最好使用参数化查询或者预编译语句来提高安全性。此外,对于生产环境中的数据库操作,建议使用专业的数据库管理工具或者API,而不是直接通过命令行进行操作。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue.js 动态组件与异步组件

title: Vue.js 动态组件与异步组件 date: 2024/6/2 下午9:08:50 updated: 2024/6/2 下午9:08:50 categories: 前端开发 tags:Vue概览动态组件异步加载性能提升路由管理状态控制工具生态 第1章 Vue.js 简介 1.1 Vue.js 概述 Vue.js 是一个渐进式的JavaScript框架&#xff0c;…

《论文阅读》通过顺序不敏感的表示正则化实现稳健的个性化对话生成 ACL 2023

《论文阅读》通过顺序不敏感的表示正则化实现稳健的个性化对话生成 ACL 2023 前言 相关个性化生成论文推荐简介问题定义方法损失函数实验结果 前言 亲身阅读感受分享&#xff0c;细节画图解释&#xff0c;再也不用担心看不懂论文啦~ 无抄袭&#xff0c;无复制&#xff0c;纯手…

中间件模版引擎

文章目录 中间件1.自定义中间件1&#xff09;全局2&#xff09;局部中间件 2.内置中间件(静态资源目录&#xff09; Art-template1.模板语法1&#xff09;输出2&#xff09;原文输出3&#xff09;条件判断4&#xff09;循环5&#xff09;子模版6&#xff09;模版继承7&#xff…

vue-Dialog 自定义title样式

展示结果 vue代码 <el-dialog :title"title" :visible.sync"classifyOpen" width"500px" :showClose"false" class"aboutDialog"> <el-form :model"classifyForm" :rules"classifyRules">…

【OJ】C++ | 二叉树进阶 · 合集(2)

摘要&#xff1a;根据二叉树创建字符串、二叉树的最近公共祖先、二叉树的层序遍历 前言&#xff1a;承接上文&#xff0c;本文继续提供二叉树进阶有关题目的解法。如有错误&#xff0c;烦请指正。 目录 1. 根据二叉树创建字符串 题解及代码 2. 二叉树的最近公共祖先 题解及…

Java | Leetcode Java题解之第121题买卖股票的最佳时机

题目&#xff1a; 题解&#xff1a; public class Solution {public int maxProfit(int prices[]) {int minprice Integer.MAX_VALUE;int maxprofit 0;for (int i 0; i < prices.length; i) {if (prices[i] < minprice) {minprice prices[i];} else if (prices[i] -…

用幻灯片讲解C++中的C语言风格数组

用幻灯片讲解C中的C语言风格数组 1.栈内存中的C风格数组 糟糕的可用性&#xff0c;但你将在遗留代码中看到它们。相同类型的对象块。大小必须是常量表达式。第一个元素的索引为0&#xff0c;即数组索引从0开始。 注意一下数组的初始化&#xff0c;使用了C11标准之后的统一初始…

数学建模--特殊的图

目录 1.二部图 &#xff08;1&#xff09;简单认识 &#xff08;2&#xff09;定义 &#xff08;3&#xff09;判定定理 &#xff08;4&#xff09;定理理解 2.匹配问题 &#xff08;1&#xff09;匹配 &#xff08;2&#xff09;完备&&完美匹配 &#xff08;3…

Python 入门教程详细版全集(两周速成)

一、初始Python 打开CMD&#xff08;命令提示符&#xff09;程序&#xff0c;输入Python并回车。然后&#xff0c;在里面输入代码回车即可立即执行。 Tip1:找不到“命令提示符”程序在哪里&#xff1f; 使用快捷键&#xff1a;win r;打开运行框&#xff0c;输入cmd后回车即可…

chat2-Client发送数据给Server

本文档描述了Client发送消息给Server&#xff0c; Server端打印接收的消息 一、Client 1.1.客户端的类Client.java中添加如下的start()方法 (表示启动客户端功能的方法)&#xff0c;并调用 /**start方法&#xff0c;作为客户端开始工作的方法*/ public void start(){ …

自然语言处理(NLP)—— 神经网络语言处理

1. 总体原则 1.1 深度神经网络&#xff08;Deep Neural Network&#xff09;的训练过程 下图展示了自然语言处理&#xff08;NLP&#xff09;领域内使用的深度神经网络&#xff08;Deep Neural Network&#xff09;的训练过程的简化图。 在神经网络的NLP领域&#xff1a; 语料…

深入解析Java中List和Map的多层嵌套与拆分

深入解析Java中List和Map的多层嵌套与拆分 深入解析Java中List和Map的多层嵌套与拆分技巧 &#x1f4dd;摘要引言正文内容什么是嵌套数据结构&#xff1f;例子&#xff1a; 遍历嵌套List和Map遍历嵌套List遍历嵌套Map 拆分嵌套数据结构拆分嵌套List拆分嵌套Map &#x1f914; Q…

排序-希尔排序

介绍 希尔排序属于那种没有了解过的直接看代码一脸懵逼的&#xff0c; 所以同学们尽量不要直接看代码&#xff0c;仔细阅读本篇博客内容。 插入排序本来算是一个低效排序&#xff0c; 一次只可以挪动一个数据&#xff0c; 但是&#xff0c;它的强来了&#xff01;&#xff01…

网吧|基于SprinBoot+vue的网吧管理系统(源码+数据库+文档)

网吧管理系统 目录 基于SprinBootvue的网吧管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员功能模块 2 网管功能模块 3 会员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#…

Arduino 按钮及弹跳

所需元件 可插入面包板的按钮1个 220Ω电阻1个 10kΩ电阻1个 3mm或5mm LED 1个 面包板1块 Arduino Uno开发板1块 面包板连接线数条 使用外接电阻 将5V接到按钮&#xff0c;按钮的另一端串联1个10kΩ电阻再接地&#xff0c;这样的接法被称为下拉电阻(pull-down resistor)。若测…

【30天精通Prometheus:一站式监控实战指南】第14天:jmx_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

【LeetCode算法】第104题:二叉树的最大深度

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;二叉树的先序遍历。首先判断根节点是否是空&#xff0c;其次判断根节点是否是叶子节点&#xff0c;再者递归获取左子树的深度、右子树的深度&#xff0c;最后返回左子…

【Mac】Lightroom Classic 2024(LrC 2024中文版) v13.1安装教程

软件介绍 Lightroom Classic 2024 for Mac是一款功能强大的照片编辑和组织软件&#xff0c;专为专业摄影师和爱好者设计。它提供了一系列工具和功能来增强和管理您的数码照片。Lightroom Classic 2024在照片组织和管理方面进行了重大改进。它新增了一个智能化的“发现”面板&a…

1. MySQL 数据库的基本操作

文章目录 【 1. SQL 的书写规则 】大小写规则常量的表示注释 【 2. RDBMS 术语 】Table 表Filed 域/字段Column 列Record 记录NULL 空值Constraint 约束数据的完整性范式 【 3. 数据库基本操作函数 】3.1 SHOW DATABASES 显示数据库3.2 CREATE DATABASE 创建数据库3.3 ALTER DA…