Mysql数据库备份
用backup备份myisam表
backup table tablename to '/db_path
该命令将生成以.frm和.myd文件,但不产生.myi文件,数据恢复后重建索此。
备份时可一次性备份多个表,写上表名就可以,中间件用逗号隔开。
用restore 恢复myisam表
restore table tablename from '/db_path';
通过直接拷贝文件的方法备份myisam表
用mysqldump备份
前两种直接拷贝的方法只使用myisam表时候起使用,对于innodb来说,使用mysqldump
如:mysqldump fistdb customer>/path/cust.sql
恢复用mysqldump备份的数据库
drop table customer;
$mysql fistdb</path/cust.sql
具体参数可以使用mysqldump --help
有三种主要的方式来使用:
mysqldump [options] database [tables]
或
mysqldump [options] --database [options] db1 db2
或
mysqldump [options] --all-databases [options]
下面的例子只备份id>5的记录
mysqldump --where='id>5' firstdb customer>back.sql
用select into做备份
select .... into outfile 'pathname';
如:
mysql>select * from cust into outfile '/cust.sql';
在win下为:select * from cust into outfile 'c:\\bakcup\\cust.sql';
参数如下:
[fileds
[TERMINATED BY '\t'] ###用\t 隔开字段
[[OPTIONALLY] ENCOLSED BY ''] ###ENCLOSED关键字用指定的字符包围了所有的域
[ESCAPED BY '\\']
]
[LINES TERMINATED BY '\n'] ####以什么结束如\n相当于是换行。
如:
select * from cust where id<10 into outfile '/aa.sql' files TERMINATED BY '|' LINES TERMINATED BY '\n';
用load data恢复表
如load data infile '/aa.sql' into table customer;
用mysqlimport代替load data
mysqlimport firstdb aa.sql
使用mysqlhotcopy备份
只适合于myisam表
用binlog文件恢复
mysqlbinlog binlogfile|mysql -uroot -proot firstdb
用innodb hotbackup备份
后续再介绍................