zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    一个粗心造成的死循环
    LinearGradientBrush使用
    一个需求引发的关于平板电脑的思考
    开发照片采集系统中的问题总结
    List<T>的Add方法等
    开发相机拍照组件中需要解决的问题,一月回顾
    ShowDialog使用
    使用ActiveSyn,让WINMBILE的PDA连接WIN2003的杂牌蓝牙
    Jenkins安装教程
    Jmeter连接数据库
  • 原文地址:https://www.cnblogs.com/xingxia/p/mysql_import_export.html
Copyright © 2011-2022 走看看