1. 首先,创建一个包含需要执行的SQL文件路径的文本文件,名为file_list.txt:
```
/home/user/sql/file1.sql
/home/user/sql/file2.sql
/home/user/sql/file3.sql
```
2. 然后,使用xargs和并发执行工具parallel来读取file_list.txt中的每个文件路径,并执行mysql命令:
```
cat file_list.txt | xargs -I {} -P 4 sh -c 'mysql -u [username] -p[password] [database] <{}'
```
这个命令将执行file_list.txt中指定的每个SQL文件,并且允许同时执行4个进程(-P 4参数)。你需要将[username]、[password]和[database]替换为你的数据库用户名、密码和数据库名。
3. 如果你想输出执行结果或错误信息到文件中,可以添加重定向 *** 作符">"或"2>"。例如:
```
cat file_list.txt | xargs -I {} -P 4 sh -c 'mysql -u [username] -p[password] [database] <{} >{}.out 2>{}.err'
```
这将把每个SQL文件执行后的输出结果和错误信息保存到它们各自的".out"和".err"文件中。
注意:在执行这种批量处理任务时,请确保你的系统有足够的资源支持多线程和并发执行。同时,也要注意对于生产环境的数据库,一定要谨慎 *** 作,避免数据丢失或损坏。
1、在gedit中编写.sh格式的文件,保存为a.sh。
2、在终端调用脚本,定位到目录,然后输入。
3、编写的if/else如下:if和 之间的代码?ls -l a.sh是用来判断当前的目录下是否存在a.sh这个文件。if和else的基本格式如下所示。
4、在终端调用的结果如下,可以看到输出了。
5、再看一个if/else脚本如下脚本,if/else格式和上面格式一致,重点看下 if 和 ;间的那个命令,命令开始以 [,后面有4个参数 $1,=,me,]。
6、输出的结果如下所示。
如何在linux中执行sql文件第一种方法:
在命令行下(未连接数据库),输入 mysql -h localhost -u root -p123456 <F:\hello world\niuzi.sql (注意路径不用加引号的!!) 回车即可.
第二种方法:
在命令行下(已连接数据库,此时的提示符为 mysql>),输入 source F:\hello world\niuzi.sql (注意路径不用加引号的)
或者 \. F:\hello world\niuzi.sql (注意路径不用加引号的) 回车即可.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)