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

发布于:2024-06-03 ⋅ 阅读:(91) ⋅ 点赞:(0)

目录

一、要求

二、脚本和解释

三、脚本执行

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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。



网站公告

今日签到

点亮在社区的每一天
去签到