通过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 root密码的重置方法
Apr 21 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
MySQL 表空间碎片的概念及相关问题解决
May 07 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
MySQL索引 高效获取数据的数据结构
May 02 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL数据管理操作示例讲解
Dec 24 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写的serv-u的web申请账号的程序
2006/10/09 PHP
也谈截取首页新闻 - 范例
2006/10/09 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
python中将字典转换成其json字符串
2014/07/16 Python
python写日志封装类实例
2015/06/28 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python logging设置和logger解析
2019/08/28 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
Android面试宝典
2013/08/06 面试题
大学信息公开实施方案
2014/03/09 职场文书
学生会主席演讲稿
2014/04/25 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
后天观后感
2015/06/08 职场文书
战友聚会致辞
2015/07/28 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
python实现简易名片管理系统
2021/04/11 Python
MySQL约束超详解
2021/09/04 MySQL