通过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 Show Profile
Apr 05 MySQL
mysql优化
Apr 06 MySQL
Idea连接MySQL数据库出现中文乱码的问题
Apr 14 MySQL
详解MySQL 联合查询优化机制
May 10 MySQL
MySQL连接查询你真的学会了吗?
Jun 02 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
一文了解MYSQL三大范式和表约束
Apr 03 MySQL
MySQL数据库 安全管理
May 06 MySQL
mysql数据库隔离级别详解
Jun 16 MySQL
MySQL分布式恢复进阶
Jul 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
php中static静态变量的使用方法详解
2010/06/04 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP7.0版本备注
2015/07/23 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
python 日志增量抓取实现方法
2018/04/28 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
售后服务科岗位职责范文
2013/11/13 职场文书
会计职业生涯规划书
2014/01/13 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
十一酒店活动方案
2014/02/20 职场文书
精神文明单位申报材料
2014/05/02 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
重阳节主题班会
2015/08/17 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js