通过shell脚本对mysql的增删改查及my.cnf的配置


Posted in MySQL onJuly 07, 2021

shell操作mysql

1.获取mysql默认密码

新安装的mysql,密码是默认密码

#!/bin/bash
# STRING:获取mysql默认密码的一段字符串
# 	例如:A temporary password is generated for root@localhost: xxxxxx
# PASSWORD:将获取到的STRING进行截取,获取localhost:右边的默认密码
# shellcheck disable=SC2006
STRING=`grep "temporary password" /var/log/mysqld.log`
PASSWORD=${STRING#*localhost: }

若已经修改了密码的

#!/bin/bash
# shellcheck disable=SC2006
PASSWORD="你的密码"

2.修改my.cnf文件

原因:在mysq5.6还是5.7以上,使用如下的shell脚本进行连接,会提示在命令行输入密码不安全。

mysql -u root -pPASSWORD -e "xxxxxx"

解决方法:使用sed命令在my.cnf文件中添加如下字段

[client]
user=root
password=xxxxxx

shell脚本:

# 我的my.cnf文件在/etc/my.cnf下,不相同的可以自己去找找
# sed -i '第几行 添加的内容' 指定的文件
sed -i '1i [client]' /etc/my.cnf
sed -i '2i user=root' /etc/my.cnf
sed -i '3i password=xxxxxx' /etc/my.cnf

3.shell创建mysql数据库

# SQL语句
DATABASE_SQL="CREATE DATABASE IF NOT EXISTS test"
# mysql -u 用户名 -e "sql语句"
# 因为在my.cnf中配置了密码,所以不用写密码了
mysql -u root -e "${DATABASE_SQL}"

4.shell创建mysql表

# sql语句
TEST_SQL="CREATE TABLE IF NOT EXISTS test ( id varchar(20) NOT NULL, text varchar(20) NOT NULL) ENGINE=InnoDB"
# mysql -u 用户名 -D "数据库名" -e "sql语句"
mysql -u root -D "test" -e "${TEST_SQL}"

5.shell添加数据

# sql语句
INSERT_SQL="insert into test values ('123', 'test')"
mysql -u root -D "test" -e "${INSERT_SQL}"

6.shell删除数据

DELETE_SQL="delete from test where id='123'"
mysql -u root -D "test" -e "${DELETE_SQL}"

7.shell修改数据

UPDATE_SQL="update test set text='你好' where id='123'"
mysql -u root -D "test" -e "${UPDATE_SQL}"

8.shell查找数据

SELECT_SQL="select id, text from test where id='123'"
mysql -u root -D "test" -e "${SELECT_SQL}"

9.shell修改数据库密码

# mysql5.7之前
SQL="update mysql set password=password("新密码") where user='root'"
# mysql5.7及以后
SQL="update mysql set authentication_string=password("新密码") where user='root'"

# flush privileges:刷新
mysql -u root -D "mysql" -e "${SQL};flush privileges"

到此这篇关于通过shell脚本对mysql的增删改查及my.cnf的配置的文章就介绍到这了,更多相关shell脚本mysql增删改查内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL复制问题的三个参数分析
Apr 07 MySQL
MySQL Shell的介绍以及安装
Apr 24 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
详解MySQL集群搭建
May 26 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
SQL实现LeetCode(175.联合两表)
Aug 04 MySQL
MySQL 开窗函数
Feb 15 MySQL
优化Mysql查询的示例
Apr 26 MySQL
MySQL中EXPLAIN语句及用法
May 20 MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
Sep 23 MySQL
MySQL一些常用高级SQL语句
MySQL系列之十四 MySQL的高可用实现
MySQL系列之十二 备份与恢复
Jul 02 #MySQL
MySQL系列之十一 日志记录
Jul 02 #MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
MySQL系列之九 mysql查询缓存及索引
MySQL系列之八 MySQL服务器变量
Jul 02 #MySQL
You might like
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
PHP $_SERVER详解
2009/01/16 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
轻松实现php文件上传功能
2017/02/17 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
Python中如何获取类属性的列表
2016/12/26 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
优秀村官事迹材料
2014/01/10 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
公司委托书格式范文
2014/10/09 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
机器人瓦力观后感
2015/06/12 职场文书
班级班风口号大全
2015/12/25 职场文书
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技