[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