目录
一、要求
二、脚本和解释
三、脚本执行
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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。