通过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 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
Mysql MVCC机制原理详解
Apr 20 MySQL
MySQL中存储时间的最佳实践指南
Jul 01 MySQL
mysql脏页是什么
Jul 26 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
为什么MySQL8新特性会修改自增主键属性
Apr 18 MySQL
mysql 索引的数据结构为什么要采用B+树
Apr 26 MySQL
优化Mysql查询的示例
Apr 26 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 MySQL
postgresql如何找到表中重复数据的行并删除
May 08 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图片验证码制作实现分享(全)
2012/05/10 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php 地区分类排序算法
2013/07/01 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
超清晰的document对象详解
2007/02/27 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
介绍一下Make? 为什么使用make
2016/07/31 面试题
学生自我鉴定范文
2013/10/04 职场文书
师说教学反思
2014/02/07 职场文书
合作经营协议书范本
2014/04/17 职场文书
普通党员整改措施
2014/10/24 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫