MySQL 的导出与导入

摘要:MySQL 的导出与导入,导出 sql 文件、csv 文件、excel 文件等。

导出表结构(不包含表数据)

# mysqldump 导出某数据库下所有表结构
mysqldump -d -hxxx.xxx.xx.xxx -uxxxx -pxxxx -P端口 dbname > /home/work/xxx.sql

# mysqldump 导出某个表的表结构
mysqldump -d -hxxx.xxx.xx.xxx -uxxxx -pxxxx -P端口 dbname table > /home/work/xxx.sql


导出表数据

# 导出表数据
mysqldump -hxxx.xxx.xx.xxx -uxxxx -pxxxx dbname table --where="xxxxxxxxxx" > /home/work/xxx.sql

-d:只导出表结构不导出数据
-t:只导出表数据不导出表结构
什么都不加导出数据和表结构
另外你还可以直接导出 文本文件*.txt

# 导出指定 sql 语句数据
mysql -hxxx.xxx.xx.xxx -uxxxx -pxxxx dbname -e "select xxx,xxx from xxx where xxx" > /home/work/xxx.sql

# 导出 .csv文件
mysql -hxxx.xxx.xx.xxx -uxxxx -pxxxx dbname -Bse "select xxx,xxx from xxx where xxx" | sed 's/\t/","/g;s/^/"/;s/$/"/;s

# 导出 .excel 文件
mysql>select xxx,concat("'", xxx),xxx from xxx where xxx into outfile "/home/work/xxx.xls";
或
mysql -hxxx.xxx.xx.xxx -uxxxx -pxxxx dbname -Bse "select xxx,concat('\'', xxx),xxx from xxx where xxx" > /home/work/xxx.xls
# 以上两种导出方式都可以,concat()的作用是为了避免有数字是以0开头的字段导出,如果你导出的都是字符串没有这种情况,那就不用加了。
# 导出的文件为xls文件,然后你ctrl+s的时候会提示是否保留这种功能,点击否,重新保存一份格式为.xlsx的excel文件。
# 如果导出的时候数字前的逗号没有解析,ctrl+f查找“'”号再全部替换“'”就可以了。


导入数据

# 在 shell 终端输入
mysql -u root -p dbname < dbname.sql

# 用 source命令 导入
mysql -uroot -p --default-character-set=utf8
use dbname
source /home/work/xxx.sql

# 当前表导入其它表数据
mysql>insert into primary_class(sort,title,create_time) select level, title, create_time from article_class;


参考:

mysqldump — A Database Backup Program

结束语:感谢您对本网站文章的浏览,欢迎您的分享和转载,但转载请说明文章出处。
Top