通过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部分操作
Apr 05 MySQL
MySQL命令行操作时的编码问题详解
Apr 14 MySQL
MySQL InnoDB ReplicaSet(副本集)简单介绍
Apr 24 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
进阶篇之linux环境下安装MySQL数据库
Apr 09 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
MySQL 原理与优化之Update 优化
Aug 14 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
英文简历中的自我评价
2013/10/06 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
幼儿园运动会口号
2014/06/07 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技