[Mysql]——备份、还原、表的导入导出

备份

1. mysqldump

mysqldump备份生成的是个文本文件,可以打开了解查看。

Methods-1 备份单个数据库或其中的几个表
# mysqldump -u username -p'password' dbname [table1,table2,...] >backup.sql
# mysqldump -u username -p'password' --single-transaction -R --triggers --master-data=1 -E dbname > backup.sql

导出db1但不包含table1、table2
# mysqldump -u username -p'password' --ignore-table=db1.table1 --ignore-table=db1.table2 db1 >backup.sql

只导出db1的table1和table2
# mysqldump -u username -p'password' --database db1 --tables table1 table2 >backup.sql

Methods-2 备份多个数据库
# mysqldump  -u  username  -p'password'  --databases dbname1 dbname2 ... >backup.sql

Methods-3 备份所有数据库
# mysqldump  -u  username  -p'password'  --all-databases >backup.sql

--single-transaction 该选项设置事务隔离模式为可重复读,并在转储数据库前发送“ START TRANSACTION”语句。即保证该转储操作在一个事务内保证导出数据的一致性。

--triggers 在输出中包含每个转储表的触发器

-R 在输出中包含转储数据库的存储例程(过程和函数)

-E 在输出中包含转储数据库的事件调度器事件

-F 转储数据后生成新的binlog文件

--no-data 只导出表结构不导出数据

--master-data=1

还原

# mysql  -u  username  -p'password'   [dbname]   <backup.sql   (dbname可以不写)

将execel/csv导入mysql(load data infile方法)

step-1:将.xls/.csv转换为.txt

.xls 另存为 —> .csv(csv逗号分隔) utf-8 另存为 —> .txt

step-2:要求在数据库中新建对应的表,例如:

  > create table user( username char(255) not null, salt char(255), pwd char(255));

step-3:进入数据库,导入txt文件

  # mysql -uroot -p123456 --local-infile

  > load data local infile '/root/user.txt' into table user fields terminated by ',' lines terminated by '\n' ignore 1 lines;

表的导入导出

1. mysql命令

Methods-1 导出为文本文件
# mysql -u username  -p'password'        -e 'select * from table' dbname >data.txt

Methods-2 导出为xml文件
# mysql -u username  -p'password'   -X   -e 'select * from table' dbname >data.xml

Methods-3 导出为html文件
# mysql -u username  -p'password'   -H   -e 'select * from table' dbname >data.html

参考

《mysqldump导出详解》

《mysql5.7参考手册-mysqldump-数据库备份程序》

《mysqldump流程》

上一篇:GMA Round 1 抛硬币


下一篇:sqlserver中的循环遍历(普通循环和游标循环)(转载)