mysql 导出数据库表部分数据

我们的项目是连接的远程服务器上的MySql。一般我都是用的Navicat来连接的,最近我想把远程数据库倒出来,导到本地。这样连接就方便了。但是300多表的数据量实在太大了... 我们的项目是连接的远程服务器上的MySql。一般我都是用的Navicat来连接的,最近我想把远程数据库倒出来,导到本地。这样连接就方便了。但是300多表的数据量实在太大了,根本等不起。我想可不可以这样:CAS这个数据库中的300多张表,每张表我只要200条数据。这样速度应该会快一些 这该怎么操作 ? 展开
 我来答
Pottievil
推荐于2017-11-26 · TA获得超过266个赞
知道答主
回答量:71
采纳率:0%
帮助的人:51.5万
展开全部
哈尼。用过mysqldump的工具吗?里面有一个参数叫where。具体用法我举个例子。
mysqldump -uroot -p db_name tab_name --where="1=1 limit 200"就可以了。对了你要是想针对某个字段排序的话也可以把order by子句加在参数里。
把这个语句加到shell脚本或者python脚本里。写一个循环就可以了。
更多追问追答
追问
假设我想取服务器数据库里面的300多张表,每张表都取前200条数据。这个循环该怎么写?
就假设写在shell脚本里。写好之后怎么执行?
还有 mysqldump这个命令 导入完的脚本存在哪个路径?
多谢 帮我写个脚本,并告诉我怎么执行 感激不尽
追答
好吧。无聊的周五反正我也没啥事儿了。。

我先贴脚本。shell的。我用的比较烂。。

#!/bin/bash
#Creator: Pottievil
#config
user=your_username
passwd="your_passwd"
db=your_dbname

#do
#把你想导出的库的300多张表的表名写到一个临时文件里
mysql -u$user -p$passwd $db -e "show tables\G" |grep -i ":" | cut -d ':' -f 2 > tmp.txt
#从临时文件里逐行读出表名,然后拼到mysqldump的语句里
#mysqldump的语句里写了只导出200行,数字可以改。导出的表的命名规则为表名.sql
for table in `cat tmp.txt`
do
echo $table
mysqldump -u$user -p$passwd $db $table --where="1=1 limit 200" > $table.sql
done

这个使用嘛。就直接sh执行shell脚本就可以了。执行以后你就可以发现。哇塞~表全导出来了吔~
对了,导出来的表会放在当前路径下。我没有在脚本里加路径。你可以自己加一下你希望的路径。

亲测可行。欢迎追问哈尼。
jyg0124
2014-04-04 · TA获得超过321个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:71万
展开全部
上服务器上用mysqldump到处
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式