通过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 pt-slave-restart工具的使用简介
Apr 07 MySQL
Mysql基础知识点汇总
May 26 MySQL
Mysql文件存储图文详解
Jun 01 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
MySQL8.0的WITH查询详情
Aug 30 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 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
php中处理模拟rewrite 效果
2006/12/09 PHP
获得Google PR值的PHP代码
2007/01/28 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
动态样式类封装JS代码
2009/09/02 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
重命名批处理python脚本
2013/04/05 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
django 模型字段设置默认值代码
2020/07/15 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
一篇.NET面试题
2014/09/29 面试题
篮球友谊赛通讯稿
2014/10/10 职场文书
优秀党员事迹材料
2014/12/18 职场文书
个人典型事迹材料
2014/12/30 职场文书
初中班主任工作随笔
2015/08/15 职场文书
初中思品教学反思
2016/02/20 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技