一、使用mysqldump 备份数据库
1.1备份指定的多个数据库。
mysql> mysqldump -uroot -ppassword --databases choose test > backup.sql
1.2备份所有的数据库
mysql> mysqldump -uroot -ppassword --all-databases choose test > backup.sql
1.3备份指定数据库中的某些表
mysqldump -uroot -ppassword databasename table1 table2 table3 > table.sql
mysqldump 完整的参数
- mysqldump -u USER_NAME -p PASSWORD [其他选项] DB [其他数据库库表]
- default-character-set: 设置字符集
- single-transaction : 将导出设置成事务
- no-data : 导出的SQL脚本中,将只包含创建表的create 语句。
- add-drop-table :导出的脚本中,包含 drop table if exists
- routines:导出存储过程及函数
- events:导出事件
- triggers:导出触发器
二、导入mysqldump 的数据文件
2.1在mysql终端下使用source命令
mysql> source /root/backup.sql
2.2在linux命令行中使用
mysql> mysql -hhostname -uusername -ppassword databasename < backupfile.sql
三、多个库和多个表备份到一起了,恢复单个库或表
3.1将备份导入测试库,然后把需要的备份出来,恢复到正式库
3.2单表:grep tablename bak.sql> name.sql
单库:循环过滤库里所有表
3.3事先分库分表备份
在库中备份单个表,例如备份private_key表
方法一
create table private_key_bak20180101 like private_key;
insert into private_key_bak select * from private_key;
方法二
create table private_key_bak20180101 select * from private_key;