MySQL之数据导入导出

日常开发中,经常会涉及到对于数据库中数据的导入与导出操作,格式也有很多: TXT,CSV,XLS,SQL等格式,所以,在此总结一下,省的总是百度查询.

一  导出

1) 常用的方式就是使用现成的工具例如: Navicat 或者phpmyadmin 当然这是在Windows下经常使用到的工具,如果是Mac当然也有比较好用的软件进行数据导出

  Navicat: 选择要导出的表/库 -> 导出向导->选择导出的格式 即可

   phpmyadmin: 选择表/库  ->  导出 -> 选择导出的格式即可

有些情况导入的时候报数据错误,可以使用这种方式进行尝试解决:

  xls   >  将xls文件另存为CSV格式  ->  打开CSV格式文件,另存为TXT格式,保存的时候使用utf8编码   -> 删除xls和CSV格式的文件  ->  将TXT文件后缀改成CSV格式   -> 使用工具进行导入(Navicat || phpadmin)

 2) 命令导出  (如果是在linux中操作的话,使用命令的导出方式是最常用的了)

//导出完整数据:
mysqldump    -u用户名    -p密码    库名    [表名]    >  保存的文件名称
mysqldump -uroot -proot  a user > user.sql(C:UsersAdministratorDesktopuser.sql)

//导出数据表结构:
mysqldump    -u用户名    -p密码    -d   库名    表名  >  保存的文件名称
mysqldump    -u用户名    -p密码   --no-data  --databases d1 > 文件名

//导出数据表中数据:
mysqldump    -u用户名    -p密码    -t    库名    表名  > 保存的文件名

//导出所有数据库中(包含系统数据库)的数据库
mysqldump    -u用户名    -p密码    --all-databases    >保存的文件名

//导出d1,d2两个数据库中的所有数据
mysqldump    -u用户名    -p密码    --databases   d1  d2 > 保存的文件名

//导出d1中的a1,a2表
mysqldump    -u用户名    -p密码    --databases  d1  --tables a1  a2  >  保存的文件名  

//导出d1库 a1表中id=1的数据
mysqldump    -u用户名    -p密码   --databases d1  --tables a1   --where='id=1'  > 保存的文件名

//跨服务器导出导入数据
mysqldump --host=h1 -uroot -proot  db1 |mysql --host=h2 -uroot -proot db2(可以指定不同数据库)

//将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错(使用这种方式必须是相同的库名才可以)
mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 
//-C  进行传输压缩  //--single-transaction  保证备份的一致性(工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据)
//压缩备份
  mysqldump -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
//还原
  gunzip -c abc.sql.gz |mysql -uroot -proot abc
//常用参数: 
//生成新的binlog文件 -F参数 mysqldump -u用户 -p密码 --all-databases -l -F > all_databases.sql

  

注意点:

--databases: 如果使用这个参数默认会SQL语句中加入创建库,use库语句

使用mysql自带的命令执行操作

/usr/bin/mysql --default-character-set=utf8 --socket=/data/mysql/mysql.sock -u用户名 -p密码 -e " select email,score  from gwent.cm_survey  " > gwent.xlsm
//在数据库进入之前执行命令

select * from user into outfile 'C:/Users/Administrator/user.xls';
//在数据库中执行命令

    

二  导入

1) 使用相应的软件导入方法, 操作步骤同上

2) 使用命令行的方式

  

use database;

source E:xampphtdocsSsCpcdjm.sql
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
原文地址:https://www.cnblogs.com/xingxia/p/mysql_import_export.html