Code前端首页关于Code前端联系我们

sh脚本操作mysql数据库,sh脚本写入

terry 2年前 (2023-09-30) 阅读数 45 #Mysql
文章标签 Mysql

文章目录:

  • 1、Mysql是.sh语言编写的脚本。执行后提示没有命令。
  • 2、Linux下如何用shell脚本定期备份mysql数据库
  • 3.2.Mysql自动安装8.0 Shell脚本
  • 4、mysql shell命令中sql命令行的执行

mysql是一个用.sh语言编写的脚本。执行后提示没有命令

?这是一个 SQL 脚本

如果不存在则创建表 test_sql(id int(10),name varchar(20));

insert into test_sql values(1,'dinner');

select * from test_sql ;

之后的shell脚本非常容易创建、插入和查询。内容如下

#!/bin/bash #这是执行SQL的脚本。只需输入数据库表和 SQL 文件名

name=$1

file_name=$2

cd /opt/lampp/bin ./mysql -uroot -p123456 EOF

​​use ${name }; source ${filename};

EOF

./mysql -uroot -p123456 命令进入mysql。前面的路径可以改成自己的绝对路径

EOF EOF 中间可以写任意mysql脚本

其中,如果要执行某些.sql命令,可以直接使用源脚本。 sql 执行脚本上面的命令。这里我们使用源sql_file.sql

。另外,如果需要执行mysql中的shell脚本

,可以在EOF中执行。/ mysql -uroot -p123456EOF \! sh shell.sh EOF

转发吧! \ +Linux中执行的shell命令可以

Linux如何用shell脚本定期备份mysql数据库

?所有超过3个月的备份数据;

3,删除7天以上的备份数据,并保留3个月内的

10、

20、

30。 † BAK/`日期

+ %Y%m%d`.sql

查找

/data/dbdata/mysqlbak/

-mtime

+7

-名称

'.*[1-9] '

-exec

rm

-rf

{}

\;

查找

/data/dbdata/mysqlbak/

-mtime

+ 92

-名称

'*.sql'

-exec

rm

- rf

{}

\;

\;

\;

#计划任务 –e

4

*

*

*

/data/dbdata/ backup_mysql.sh

2。 Mysql自动安装8.0 Shell脚本

如果您觉得文字对您有用,请给个小费,谢谢。

新建执行脚本:mysql_install.sh,并添加执行权限

#!/bin/bash

#zhouyihua V0.1 2021.07.08

#For centos. 0.2

# 添加 DNS

echo "------------ 添加 DNS --------"

echo "nameserver 8.8.8.8" /etc/resolv.conf

#stop 防火墙

systemctl 停止防火墙

if [ $? -ne 0];然后

echo "防火墙关闭失败"

else

  echo "防火墙关闭成功"

fi

#下载mysql yum源

wget ymivyms我的源l80 -community-release -el7-3.noarch.rpm

#enable 5.7

#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community .repo

#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community.repo

#disable 8.0

#sed -i ' 28s/enabled= 1/enabled=0/g' /etc/yum.repos.d/mysql-community.repo

#安装 mysql

yum -y 禁用模块 mysql

yumb -y 删除 mariadb 库

yum install -y mysql-community-server

#config mysql

echo "------------ 配置 my.cnf -----------"

sed -i '/\[mysqld\]/a\lower_case_table_names=1' /etc/my.cnf

sed -i '/\[mysqld\]/a\skip-grant-tables' /etc /my.cnf cnf

#start mysql

echo "----------启动mysql服务----------"

systemctl start mysqld.service

mysql -uroot -p123456 EOF

mysql 使用;

更新用户池authentication_string =''其中user ='root';

刷新权限;

ALTER用户'root'@'localhost'IDENTIFY'?CZJh8JWxvH';

“EOF-”---- ---- 在 my.cnf 中注释跳过表 ----------"

sed -i 's/skip-grant-tables/\#skip-grant-tables/ g' /etc/ my.cnf

echo "--------- 重启 mysql 服务 ----------"

systemctl restart mysqld.service

echo " --- --- ---- 授予所有权限 ----------"

mysql -uroot -p'Oracle1234!@#$' --connect-expired-password -e "alter user 'root'@' localhost' 标识为 'Oracle1234!@#$';"

mysql -u root -p'Oracle1234!@#$' EOF

使用 mysql;

创建用户 'maxkey' @' %' 标识为: 'Oracle1234!@#$';

将 *.* 上的所有内容授予 'maxkey'@'%';

EOF

参考:

1. use mysql

2. update user setauthentication_string='' where user='root' ; 如果该字段有值,先将其设置为空

3. 刷新权限 更新权限表

4. ALTER user 'root'@'localhost' IDENTIFIED by 'Tianya1234' 更改root密码

参考:

在mysql shell命令中执行sql命令行

本文介绍如何使用 MySQL 8.0 shell Util 子模块的两个导入函数:importTable/import_table(JS 和 python 版本名称差异)和 importJson/import_json。

其中import_table通过传统MySQL协议进行通信,Import_json通过X插件协议进行通信。 MySQL 始终提供用于加载数据的 infile SQL 命令(单线程)和相应的 mysqlimport(多线程)可执行文件。

例如,我将100W个样本数据导入到ytt.tl1表中,花了24秒。这已经是默认情况下最快的 MySQL 导入了。分析: 现在让我们看一下 mysqlimport 工具的更新版本,即 mysqlshell 实用程序。

在使用这两个工具之前,您必须暂时启用local_infile。 1. import_table 创建到端口 3306 的新连接。这里我切换到python模式并删除示例表Ytt.tl1。 Import_table 有两个参数。第一个参数指定导入文件的路径,第二个参数指定导入格式、并发度等相关设置。数量等定义文件路径(参数1)指定设置(参数2)执行导入:花费不到17秒,比传统的mysqlimport快得多。

上面我们专门指定了字段分隔符,但是有没有具体的组合格式呢?答案是肯定的。选项 dialect 可以指定以下格式:csv、tsv、json、csv-unix。那么上面的导入就可以更简单了。我们可以更改 y_options1 变量的定义,导入时间几乎相同。这里需要注意的是方言选项的优先级比较低。例如,添加 'linesTermminateBy':'\r\n' 将覆盖您自己的 '\n'。

dialect选项还有一个可选的json值,可以直接将json结果导入到文档表中。例如,我创建一个新的 tl1_json 表并重新定义文件和导入选项。导入 JSON 数据也相当快,耗时不到 24 秒。要导入 JSON 数据,您需要提及与 X 插件通信的 import_json 工具。 2. imort_json 我们切换到mysqlx端口。 import_json 参数与 Import_table 参数类似。我在这里更改选项。我在手册中没有看到多线程选项,所以35秒的单线程运行速度有点慢。查看刚刚导入的数据。 import_json不仅可以导入Json数据,更重要的是可以在BSON和JSON之间无缝转换。有兴趣的可以去TRY。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门