【日常记录-MySQL】Shell自动登录MySQL并执行SQL脚本

ops/2024/10/11 7:27:00/
Author:赵志乾
Date:2024-08-09
Declaration:All Right Reserved!!!

1. 简介

        在Shell脚本自动登录MySQL并执行脚本是一个常见的自动化任务,尤其是在数据备份、报表生成或批量数据处理时非常有用。要实现这一点,可以使用sql>mysql命令行工具配合-u、-p、-h(若为本地可以省略)以及数据库名等选项,但直接在脚本中硬编码密码可能存在安全风险。一种更安全的方法是使用配置文件或环境变量来管理敏感信息。

2. 示例

#!/bin/bash  USER="your_username"  
HOST="localhost"  
DATABASE="your_database"  # SQL脚本文件路径  
SQL_SCRIPT="/path/to/your_script.sql"  # 使用配置文件(.my.cnf),但这需要谨慎管理文件权限  
# 在用户的主目录下创建或编.my.cnf文件,并添加以下内容:  
# [client]  
# user=your_username  
# password=your_password  
# host=localhost  # 接下来,我们可以使用sql>mysql命令如下(无需-p参数):  
sql>mysql -u"$USER" -h"$HOST" "$DATABASE" < "$SQL_SCRIPT"  echo "SQL script executed successfully."

3. 注意事项

  • 避免在脚本中硬编码密码:使用环境变量或MySQL的配置文件来管理敏感信息;
  • 权限管理:确保Shell脚本和配置文件的安全,只有授权用户才能访问;
  • 日志管理:注意任何可能记录密码或敏感信息的日志文件,确保它们不被未授权访问;


http://www.ppmy.cn/ops/93068.html

相关文章

算法训练营第55天|101孤岛的总面积|102沉没孤岛|103水流问题|104.建造最大岛屿

101孤岛的总面积 我的思路&#xff1a;对每一片都求面积&#xff0c;同时递归时判断是否为孤岛。 改进思路&#xff1a;本题要求找到不靠边的陆地面积&#xff0c;那么我们只要从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋&#xff0c;然后再去重…

SPI通信协议

目录 一、SPI简介 二、寻址方式 三、通信过程 四、SPI设备时钟 五、极性和相位 5.1 CPOL0&#xff0c;CPHA0 5.2 CPOL0&#xff0c;CPHA1 5.3 CPOL1&#xff0c;CPHA0 5.4 CPOL1&#xff0c;CPHA1 &#x1f308;你好呀&#xff01;我是 程序猿 &#x1f30c; 2024感谢你…

怎样才算精通 Excel?

最强AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 高赞回答很系统&#xff0c;但普通人这么学&#xff0c;没等精通先学废了&#xff01; 4年前&#xff0c;我为了学数据分析&#…

无人机防炸宝典!!

四种易炸环境,你必须知道 避免在GPS信号不好的环境内飞行 在GPS信号弱或不稳定的环境中&#xff0c;无人机可能无法准确判断自身位置&#xff0c;导致飞行不稳定&#xff0c;甚至失控坠机。 注意细小物体 例如&#xff1a;树枝&#xff0c;电线等&#xff0c;这些细小物体往往…

Selenium + Python 自动化测试08(截图)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了滑块的操作方法&#xff0c;本篇文章我们讲述一下截图的操作方法。希望能够帮到爱学的小伙伴。 在实际的测试项目组中我们经常要截屏保存报错信息&#xff0c…

免费【2024】springboot 甘肃旅游工艺品商城的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

8.8 哈希表简单 1 Two Sum 141 Linked List Cycle

1 Two Sum class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {//给的target是目标sum 要返回vector<int> res(2,0);是在num中找加数//首先假设每个输入都是由唯一的结果&#xff0c;而且不适用相同的元素两次一共有n*(n-1)种…

1.mysql-DDL-数据库操作

DDL-数据库操作定义语言 DML-数据库操作语言 DCL-数据库控制语言 DQL-数据库查询语言 DDL-数据库操作 DDL-数据库操作- 查询 查询所有数据 SHOW DATABASES;查询当前数据库 SELECT DATABASE();DDL-数据库操作- 创建 CREATE DATABSE [IF NOT EXISTS] 数据库名 [ DEFAULT CHA…