使用 select ... INTO OUTFILE 语句导出数据:--single-transaction
- 导出数据到 /root/mytable.sql
SELECT * FROM mytable INTO OUTFILE ‘/root/mytable.sql‘; - 你可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式
SELECT * FROM mytable INTO OUTFILE ‘/root/mytable.sql‘ FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\r\n‘; - 在下面的例子中,生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用。
SELECT a,b a+b INTO OUTFILE ‘/root/mytable.sql‘ FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\n‘ FROM mytable;
使用 mysqldump 导出数据:
mysqldump 导出数据:
-
导出数据库的所有表结构并压缩
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 -
对数据表的备份:
导出某个表的结构
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 -
存储过程和函数
导出存储过程和函数
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: 表列表