通过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 27 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
Node-Red实现MySQL数据库连接的方法
Aug 07 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL限制查询和数据排序介绍
Mar 25 MySQL
mysql查询结果实现多列拼接查询
Apr 03 MySQL
CentOS MySql8 远程连接实战
Apr 19 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 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
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
js的2种继承方式详解
2014/03/04 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
如何写你的创业计划书
2014/01/07 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
欠条格式范本
2015/07/03 职场文书
六年级作文之关于梦
2019/10/22 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL