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,这