怎么用shell脚本 去 读取MySQL中的数据,并把数据传到该脚本中? 谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用shell脚本 去 读取MySQL中的数据,并把数据传到该脚本中? 谢谢!相关的知识,希望对你有一定的参考价值。

参考技术A 可用下面的命令
echo SQL语句 | mysql -h数据库地址 -P端口 -u用户名 -p密码 数据库名
或者
mysql -h数据库地址 -P端口 -u用户名 -p密码 数据库名 < SQL脚本追问

我目前也采取了这种办法,但脚本中多处涉及读取操作,有什么办法能一次读多个字段,传给脚 本中的多个变量?

追答

可以把这个命令写入一个shell中
如mysqlconn.sh
调用的时候只要调用 mysqlconn.sh + 后面的参数就行了
后面的参数可以是sql语句或脚本
看你的 mysqlconn.sh 的写法了

参考技术B 我用呼吸向它们致意

当伪装的罗克梅出现,
在我心里仍坐着脸色阴沉的巨人们,
树后就有大海的一片奇景。
还是用心去个一汪水中的蓓蕾哈哈本回答被提问者采纳
参考技术C

本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。


其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。


比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。


使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。


我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':'\\r\\n', 则覆盖他自己的'\\n'。


选项 diaelect 还有一个可选值为 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 下。


如何用shell脚本实现mysql数据库的操作

参考技术A mysql -u root -p password -h localhost <<!

所要执行的sql语句
!
参考技术B 直接使用mysql client命令就可以了。如:
mysql -u root -p password -h localhost -e "SQL";本回答被提问者和网友采纳
参考技术C 用MYSQL命令切换进行MYSQL中,可以用SQL命令了。 参考技术D

本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。


其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。


比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。


使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。


我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':'\\r\\n', 则覆盖他自己的'\\n'。


选项 diaelect 还有一个可选值为 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 下。


以上是关于怎么用shell脚本 去 读取MySQL中的数据,并把数据传到该脚本中? 谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

如何用shell脚本实现mysql数据库的操作

Saiku数据库迁移后的刷新脚本-Shell脚本读取数据库中的数据(二十三)

Shell脚本读取mysql结果集各数据项的值

shell脚本读取oracle数据库数据写入到文件中

linux脚本时间变量调用

shell多个脚本怎么并发执行