今天想导出部分数据找了半天终于找到对应的几个方法
首先看下字符集,省的导出的时候是乱码
1.用命令
代码如下
mysql> SHOW VARIABLES LIKE "character_set%";
根据对应的字符集value决定采用导出字符latin1 还是utf8
2.采用 –where的方式导出
代码如下
mysqldump -uroot -p123456 --default-character-set=latin1 i5a6 i5a6_data --where=" id < 100" > bki5a6.sql
3.采用创建新表结构和原来表相同复制部分数据的形式再全部导出新表数据即可
代码如下
INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROM Table1
涉及更多 mysql备份导入导出说明(二进制导出等)
1.导出整个数据库(–hex-blob 为有blob数据做的,防止乱码和导入失败用)
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
代码如下
mysqldump -u root -p --default-character-set=gbk --hex-blob i5a6 > i5a6.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
代码如下
mysqldump -u root -p i5a6 users> i5a6.sql
3.导出一个数据库结构
代码如下
mysqldump -u root -p -d --add-drop-table i5a6 >d:/i5a6.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
代码如下
mysql>source d:/i5a6.sql
另附录一份备份的shell脚本(backup.sh)
代码如下
date_str=`date +%Y%m%d`
cd /data2/backup
mysqldump -h localhost -u root --password=xxxxx -R -e \
--max_allowed_packet=1048576 --net_buffer_length=16384 i5a6\
| gzip > /data2/backup/i5a6_$date_str.sql.gz
完毕,感觉采用mysqldump 导出的时候更省事,流着以后用的时候好直接翻阅