我是靠谱客的博主 孤独蓝天,最近开发中收集的这篇文章主要介绍【Linux】通过shell脚本对mysql的增删改查以及my.cnf的配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

      • shell操作mysql
        • 1.获取mysql默认密码
        • 2.修改my.cnf文件
        • 3.shell创建mysql数据库
        • 4.shell创建mysql表
        • 5.shell添加数据
        • 6.shell删除数据
        • 7.shell修改数据
        • 8.shell查找数据
        • 9.shell修改数据库密码

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修改数据库密码

PASSWORD="xxxxxx"
mysql -u root mysql << EOF
use mysql;
# mysql5.7之前
update user set password=Password("${PASSWORD}") where user='root';
# mysql5.7及以后
update user set authentication_string=Password("${PASSWORD}") where user='root';
commit;
flush privileges;
EOF

最后

以上就是孤独蓝天为你收集整理的【Linux】通过shell脚本对mysql的增删改查以及my.cnf的配置的全部内容,希望文章能够帮你解决【Linux】通过shell脚本对mysql的增删改查以及my.cnf的配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部