MySQL 导入导出数据

使用 select ... INTO OUTFILE 语句导出数据:--single-transaction

  1. 导出数据到 /root/mytable.sql
    SELECT * FROM mytable INTO OUTFILE ‘/root/mytable.sql‘;
  2. 你可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式
    SELECT * FROM mytable INTO OUTFILE ‘/root/mytable.sql‘ FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\r\n‘;
  3. 在下面的例子中,生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用。
    SELECT a,b a+b INTO OUTFILE ‘/root/mytable.sql‘ FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\n‘ FROM mytable;

使用 mysqldump 导出数据:

mysqldump 导出数据:

  1. 导出数据库的所有表结构并压缩
    mysqldump -S /var/mysql.sock -d mydb|gzip >mydb.sql.gz
    导出多个数据库的结构
    mysqldump -S /var/mysql.sock -d -B mydb mydb1|gzip >mydb_x.sql.gz
    导出数据库中的所有表数据(不包含结构)
    mysqldump -S /var/mysql.sock -t mydb >mydb.sql;
    导出多个数据库中的所有表数据(不包含结构)
    mysqldump -S /var/mysql.sock -t -B mydb mydb1 >mydb.sql;
    导出数据库的结构和数据
    mysqldump -S /var/mysql.sock mydb >mydb.sql
    导出多个数据库的结构和数据
    mysqldump -S /var/mysql.sock -B mydb mydb1 >mydb.sql

  2. 对数据表的备份:
    导出某个表的结构
    mysqldump -S /var/mysql.sock -d mydb mytable >mytable.sql
    导出数据库中多张表的结构
    mysqldump -S /var/mysql.sock -d -B mydb --tables mytable mytable1 >mytable.sql
    导出数据库中某张表的数据(不包含结构)
    mysqldump -S /var/mysql.sock -t mydb mytable >mytable.sql
    导出数据库中多张表的数据(不包含结构)
    mysqldump -S /var/mysql.sock -t -B mydb --tables mytable mytable1 >mytable.sql
    导出数据库中某张的结构和表数据
    mysqldump -S /var/mysql.sock mydb mytable >mytable.sql
    导出数据库中多张表的结构和数据
    mysqldump -S /var/mysql.sock -B mydb --table mytable mytable1 >mytable.sql

  3. 存储过程和函数
    导出存储过程和函数
    mysqldump -S /var/mysql.sock -R -ntd mydb >mydb.sql
    导出事件
    mysqldump -S /var/mysql.sock-E -ntd mydb >mydb.sql

总结:
-d 结构:--no-data 不导出任何数据,只导出数据库的表结构
-t 数据:--no-create-db 只导出数据,而不添加 create databases 语句
-n 只导出数据:--no-create-db 不添加 create database 语句
-R 函数: --routines 导出存储过程以及自定义函数
-E 事件: --events 导出事件
-B 列表: --databases 导出数据库列表
--tables: 表列表

MySQL 导入导出数据

上一篇:MySQL-DB-封装-入门版


下一篇:利用SQLite构建发明者量化数据库