优秀的编程知识分享平台

网站首页 > 技术文章 正文

MySQL数据库批量导出和导入查询数据

nanyue 2024-07-20 00:12:26 技术文章 6 ℃

MySQL数据库批量导出和导入查询数据的过程是使用-e参数去执行命令。

由于工作需要,我需要先在一个MySQL库中查询出结果,然后以查出结果为参数,去放入另外一个MySQL数据库中当成where的条件去匹配另外的查询。

我具体的操作过程如下:

1.执行源数据库查询结果导出:

$mysql -h192.168.100.200 -P3306 -umysql_user -pmysql_password test -e "select vol_id from test.table where xxx='abc'" > /tmp/1.txt

把/tmp/1.txt的结果通过服务器sz 命令导出服务器。并且上传到另外一台MySQL数据库服务器的/tmp目录中。

2.编写目的数据库查询数据并且导出的脚本:

$touch import.sh; 新建shell脚本文件。

$chmod 755 import.sh 授权导入数据的脚本读写执行权限。

$vim import.sh 编辑内容如下:

for vol_id in `cat /tmp/1.txt`

do

mysql -h10.253.200.110 -P3306 -umysql_user -pmysql_password yewudb -e "select * from yewudb.tablename where column_name='$vol_id'" >> /tmp/result.txt

done

3.执行import.sh脚本:

./import.sh

4.导出脚本执行的结果result.txt,这就是MySQL数据库查询出的最终结果。

总结:由于是for循环逐行读取查询结果,并且进行再次查询后输出内容。所以for.....do.....done的循环中,do中的操作部分中,把查询结果输出到文件中,必须是双箭头追加到文件,不能单箭头。否则导出的文件中,只有最后一条查询语句的结果。


最近发表
标签列表