首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BASH如何等待mysql LOAD DATA LOCAL INFILE完成

在BASH中,可以使用以下方法等待mysql LOAD DATA LOCAL INFILE完成:

  1. 使用mysql命令行工具:可以在BASH中使用mysql命令行工具连接到MySQL数据库,并执行LOAD DATA LOCAL INFILE命令。然后使用以下语句来等待LOAD DATA LOCAL INFILE完成:
代码语言:bash
复制
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name

这将在执行完LOAD DATA LOCAL INFILE命令后立即退出mysql命令行工具。如果你想要等待LOAD DATA LOCAL INFILE完成,可以使用以下脚本:

代码语言:bash
复制
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name &
wait $!

这里的&符号将mysql命令放入后台执行,然后使用wait $!命令等待mysql命令执行完成。

  1. 使用MySQL的SELECT语句:另一种方法是使用SELECT语句来检查LOAD DATA LOCAL INFILE的执行状态。可以在BASH中使用以下脚本:
代码语言:bash
复制
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name &
pid=$!

while true; do
    result=$(mysql -u username -p -e "SELECT * FROM information_schema.processlist WHERE ID = $pid AND STATE = 'Executing LOAD DATA';" database_name)
    if [ -z "$result" ]; then
        break
    fi
    sleep 1
done

这里的pid=$!将获取mysql命令的进程ID,然后使用while循环和SELECT语句来检查LOAD DATA LOCAL INFILE的执行状态。如果SELECT语句返回空结果,则表示LOAD DATA LOCAL INFILE已完成。

以上是等待mysql LOAD DATA LOCAL INFILE完成的两种方法,你可以根据实际情况选择适合的方法来使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 数据导入利器:MySQL LOAD DATA LOCAL INFILE vs. source命令对比解析

    简介 MySQLLOAD DATA LOCAL INFILE是一个用于将本地文件数据加载到数据库表中的功能。 优点 1....访问权限限制:默认情况下,MySQL不允许客户端使用LOAD DATA LOCAL INFILE命令,需要在启动时指定--local-infile选项或在配置文件中设置local-infile=1。...比较 LOAD DATA LOCAL INFILE 和 source 都是 MySQL 中用于导入数据的命令,但它们之间有一些区别。 1....文件路径: • LOAD DATA LOCAL INFILE:需要指定完整的本地文件路径,并且 MySQL 服务器需要有权限读取该文件。...需要注意的是,LOAD DATA LOCAL INFILE 默认是被禁用的,需要在 MySQL 配置文件中设置 local_infile=1 并重启 MySQL 服务后才能正常使用。

    1.4K20

    MySQL 数据备份恢复(一)select into outfile & load data infile

    load data infile 和 select into outfile 是 MySQL 用于导入和导出数据的命令。...load data infile 是将带有格式的数据文件导入到表中。使用 load data infile 的方式插入数据比直接执行 insert 语句插入至少快几十倍。...导入数据使用 load data infile 命令,当使用 local 参数时,文件位于客户端上;当不使用 local 参数时,文件位于 MySQL 服务器上。 ?...data infile 导入数据 使用 load data infile 命令导入数据时,如果使用 local 参数表示从客户端读取文件,指定的目录是客户端上的目录;如果没有使用 local 参数,表示从...= 1; mysql> SET GLOBAL local_infile = true; 设置完成后查看 MySQL 服务器的参数: mysql> show variables like 'secure_file_priv

    3.7K30

    MySQL LOAD DATA INFILE—从文件(csv、txt)批量导入数据

    后改为"load data infile"大概,10万条数据平均1秒~1.5秒,实际的代码示例如下: query = "LOAD DATA INFILE '/var/lib/mysql-files/es.csv...需要开启对"load data inflie"的权限支持     mysqlcur.execute("SET GLOBAL local_infile = 1") (2)需要对mysql文件目录(笔者:...“/var/lib/my-files/”)具有管理员的权限(查看mysql路径,用“locate mysql”) 如果没有的话,可以指定本地路径(速度大概要慢%20),需要加上关键字"local"即:LOAD...DATA LOCAL (3)Concurrency 支持  如果默认是 LOW_PRIORITY ,则LOAD DATA要等其它客户端读完了,才能开始写入。... (自备梯子)  MySQL 官方文档说明 — https://dev.mysql.com/doc/refman/8.0/en/load-data.html **********************

    7.6K10

    MySQL】插入优化篇——(少量插入数据优化&批量插入数据load指令)

    前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎!...本地磁盘文件中的数据,通过load直接加载到数据库表结构中 操作如下: #客户端连接服务端时,加上参数--local-infile mysql --local-infile -u root -p #设置全局参数...local infile为1,开启从本地加载文件导入数据的开关 set global local infile=1; #执行load指令将准备好的数据,加载到表结构中 #逗号分隔,换行符截止 load...data local infile '/root/sql1.log’ into table 'tb user’ fields terminated by ',’ lines terminated by...'\n' ; 2.手动提交事务 而不是自动模式 减少锁竞争:通过主动控制事务,你可以更精确地控制事务的开始和结束,从而减少不必要的锁竞争和锁等待时间。

    8310

    教你几招,快速创建 MySQL 五百万级数据,愉快的学习各种优化技巧

    下载完成之后,直接使用 MySQL 客户端运行 sql 文件即可。 或者直接使用命令,然后输入密码导入。...load data infile 方式 最后这种方式是使用 load data infile 方式,这是 MySQL 提供的一种从文件快速导入的方式。比如按照特定符号分隔,导入对应的字段中。...最后执行 load data infile 将文件导入到对应的表中,在执行这个命令后可能会出现下面这个错误提示。...load data infile '/Users/fengzheng/知识管理/技术写作/mysql/创建测试数据/sql/load_user_txt_500w.txt' replace into table...load data infile '/Users/fengzheng/知识管理/技术写作/mysql/创建测试数据/sql/load_order_txt_500w+.txt' replace into

    1.3K10

    CSS-T | Mysql Client 任意文件读取攻击链拓展

    Load data infile load data infile是一个很特别的语法,熟悉注入或者经常打CTF的朋友可能会对这个语法比较熟悉,在CTF中,我们经常能遇到没办法load_file读取文件的情况...,这时候唯一有可能读到文件的就是load data infile,一般我们常用的语句是这样的: load data infile "/etc/passwd" into table test FIELDS...mysql> load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; Query OK, 11 rows...en/load-data-local.html 在mysql文档中的说到,服务端可以要求客户端读取有可读权限的任何文件。...data local 百度Cloud RDS DTS 成功 国际云服务商 Google could SQL数据库迁移失败,禁用Load data infile AWS RDS DMS服务 成功

    1.6K10

    CSS-T | Mysql Client 任意文件读取攻击链拓展

    Load data infile load data infile是一个很特别的语法,熟悉注入或者经常打CTF的朋友可能会对这个语法比较熟悉,在CTF中,我们经常能遇到没办法load_file读取文件的情况...,这时候唯一有可能读到文件的就是load data infile,一般我们常用的语句是这样的: load data infile "/etc/passwd" into table test FIELDS...mysql> load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; Query OK, 11 rows...4、load file local 由于我的环境在windows下,所以这里读取为C:/Windows/win.ini,语句如下 load data local infile "C:/Windows/.../2018/04/abusing-mysql-local-infile-to-read.html https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html

    1.4K30

    如何把.csv文件导入到mysql中以及如何使用mysql 脚本中的load data快速导入

    4, String sql = "load data infile 'E://test.csv' replace into table demo fields terminated by ',' enclosed... by '\\'' lines terminated by '\\r\\n'  (`A`,`B`) "; 这句话是MySql的脚本在java中的使用,这个插入速度特别快,JDBC自动解析该段代码进行数据的读出...要注意在load data中转义字符的使用。 如果要使用load data直接进行执行一下这句话,(不过要记得更改成自己的文件名  和 表名)就可以把文件中的内容插入,速度特别快。...        try {               long start = System.currentTimeMillis();              Class.forName("com.mysql.jdbc.Driver...");              Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/girlandboy

    5.8K40
    领券