通过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 相关文章推荐
如何使用Maxwell实时同步mysql数据
Apr 08 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
一文弄懂MySQL索引创建原则
Feb 28 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
为什么MySQL不建议使用SELECT *
Apr 03 MySQL
一文了解MYSQL三大范式和表约束
Apr 03 MySQL
MySQL创建管理RANGE分区
Apr 13 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
Mysql 文件配置解析介绍
May 06 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
删除无限级目录与文件代码共享
2006/07/12 PHP
php 分库分表hash算法
2009/11/12 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
个人求职信范例
2014/01/29 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
环保建议书500字
2014/05/14 职场文书
汽车广告策划方案
2014/05/31 职场文书
会计求职自荐信
2014/06/20 职场文书
金融保险专业求职信
2014/09/03 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
《角的度量》教学反思
2016/02/18 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
JavaScript实现音乐播放器
2022/08/14 Javascript