数据导入导出、备份恢复

1、数据导入(文件内容导入数据库)

1、作用 :把文件系统的内容导入到数据库中
2、语法
  load data infile "/var/lib/mysql-files/文件名"
  into table 表名
  fields terminated by "分隔符"
  lines terminated by " ";
3、将scoretable.csv文件导入到数据库的表中
  1、在数据库中创建对应的表
  create table scoretab(
  id int,
  name varchar(15),
  score float(5,2),
  number bigint,
  class char(7)
  );
2、把文件拷贝到数据库的默认搜索路径中
  1、查看默认搜索路径
    show variables like "secure_file_priv";  # 这个是数据库的默认搜索路径
    /var/lib/mysql-files/
  2、拷贝文件
    sudo cp ~/scoretable.csv /var/lib/mysql-files/
  3、执行数据导入语句
    load data infile "/var/lib/mysql-files/scoretable.csv"
    into table scoretab
    fields terminated by ","
    lines terminated by " ";
  4、文件权限
    rwxrw-rw- 1 tarena tarena scoretable.csv
          所有者 所属组
    rwx : tarena用户
    rw- : 同组其他用户
    rw- : 其他组的其他用户(mysql用户)

    r -> 4
    w -> 2
    x -> 1
    chmod 644 文件名 rw-r--r--
  5、Excel表格如何转化为CSV文件
    1、打开Excel文件 -> 另存为 -> CSV(逗号分隔)
  6、更改文件编码格式
    1、用记事本/编辑器 打开,文件->另存为->选择编码

2、数据导出

1、作用 
  将数据库中表的记录导出到系统文件里
2、语法格式
  select ... from 表名
  into outfile "/var/lib/mysql-files/文件名"
  fields terminated by "分隔符"
  lines terminated by " ";
3、把MOSHOU库下的sanguo表英雄的姓名、攻击值、国家导出来,sanguo.txt
  select name,gongji,country from MOSHOU.sanguo
  into outfile "/var/lib/mysql-files/sanguo.txt"
  fields terminated by " "
  lines terminated by " ";
  $ sudo -i
  $ cd /var/lib/mysql-files/
  $ ls
  $ cat sanguo.txt
4、将mysql库下的user表中 user、host两个字段的值导出到 user.txt
  select user,host from mysql.user 
  into outfile "/var/lib/mysql-files/user.txt" fields terminated by " " 
  lines terminated by " ";

3、数据备份(mysqldump,在Linux终端中操作)

1、命令格式
  mysqldump -u用户名 -p 源库名 > ~/***.sql
2、源库名的表示方式
  --all-databases 备份所有库
  库名        备份单个库
  -B 库1 库2 库3 备份多个库
  库名 表1 表2 表3 备份指定库的多张表
3、示例
  1、备份所有库,放到 mydata 目录下:all.sql
    mysqldump -uroot -p --all-databases > all.sql
  2、备份 db4 库中的 sheng city xian 三张表,scx.sql
    mysqldump -uroot -p db4 sheng city xian > scx.sql
  3、备份 MOSHOU 和 db4 库, md.sql
    mysqldump -uroot -p -B MOSHOU db4 > md.sql
  4、备份 db4 库, db4.sql
    mysqldump -uroot -p db4 > db4.sql

4、数据恢复

1、命令格式(Linux终端)
  mysql -uroot -p 目标库名 < ***.sql
2、从所有库备份中恢复某一个库(--one-database)
  mysql -uroot -p --one-database 目标库名 < all.sql
  mysql -uroot -p --one-database db4 < all.sql
3、示例
  1、在db4.sheng新增一条记录
  2、在db4中新建一张表 t888,里面插入1条记录
  3、从db4.sql中恢复db4库
  4、注意
    1、恢复库时如果恢复到原库会将表中数据覆盖,新增表不会删除
    2、数据恢复时如果恢复的库不存在,则必须先创建空库

原文地址:https://www.cnblogs.com/LXP-Never/p/9409373.html