db / 未分类 · 2012年1月13日

mysql导出导入–包括只导出表

-n, --no-create-db #
-t ,--no-create-info #只导出数据
-d,--no-date # 只导出结构

xx大亨2服2个表的数据给我就行了
只有结构
mysqldump -uroot -p --default-character-set=utf8  -d gamebto_s2 bto_u_poweraction >bto_u_poweraction.sql
mysqldump -uroot -p  --default-character-set=utf8 -d gamebto_s2 bto_u_poweraction2 >bto_u_poweraction2.sql

 
导出数据不导出结构 
mysqldump -t 数据库名 -uroot -p > xxx.sql
##结构和数据
mysqldump -uroot -p --default-character-set=utf8 gamebto_s2 bto_u_poweraction >bto_u_poweraction.sql
mysqldump -uroot -p --default-character-set=utf8 gamebto_s2 bto_u_poweraction2 >bto_u_poweraction2.sql

导出特定表的结构
mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql
导入数据:好像线上用这个很少
#mysql 数据库名 < 文件名 #source /tmp/xxx.sql 数据导入导出 这个讲得很不错,有空看看哦 http://www.taobaodba.com/html/558_loaddata.html MySQL mysqldump排除指定表的shell这个也很有意思 哈哈 http://my.oschina.net/huzorro/blog/74132 表名固定 #!/bin/sh
for j in `mysql -uroot -e “USE spservice;SHOW TABLES” | grep -v Tables`
do
case $j in
mo_log|mt_log|report_info)
:
;;
*)
mysqldump -uroot –default-character-set=gbk –opt spservice $j >> $j.sql
esac
done
表名不固定
#!/bin/sh
for j in `mysql -uroot -e “USE spservice;SHOW TABLES” | grep -v Tables`
do
for i in “$@”
do
if [ $j != $i ];then
mysqldump -uroot –default-character-set=gbk –opt spservice $j >> $j.sql
fi
done
done
更简洁的方法
#!/bin/sh
for j in `mysql -uroot -e “USE spservice;SHOW TABLES” | grep -v Tables`
do
echo $@ | grep -wq “<$j>”
if [ $? -ne 0 ];then
mysqldump -uroot –default-character-set=gbk –opt spservice $j >> $j.sql
fi
done
使用方法
sh exclude.sh mo_log mt_log report_log
#定义一个shell数组
tables=(mo_log mt_log report_log)
sh exclude.sh ${tables[@]}

参考
http://blog.csdn.net/jibing57/article/details/7695889