通过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 Shell的介绍以及安装
Apr 24 MySQL
MySQL 使用自定义变量进行查询优化
May 14 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
mysql脏页是什么
Jul 26 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
一条 SQL 语句执行过程
Mar 17 MySQL
MySQL创建管理子分区
Apr 13 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里面的抽象类
2010/01/28 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
蒂娜商店:Tiina the Store
2019/12/07 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
校园安全检查制度
2014/02/03 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python