Backup

MySQL备份和恢复数据表的方法

mysql的配置文件my.ini:
basedir="D:/apps/temp/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
lower_case_table_names = 1
  0:区分大小写
  1:不区分大小写


只备份库里的一个表
mysqldump -uroot -proot mydb --table dept> dept.sql

恢复这个数据文件就和以前一样了,把只有一个表的数据导入到库里
mysql -u root -p mydb < dept.sql

还有一个很好玩,也记录下来了
mysql>select * from dept into outfile "dept.sql"
mysql>select * into outfile 'dept.sql' from dept;

mysql>tee a.sql;
mysql>select * from dept;
mysql>notee;


假定表tbl_name具有一个PRIMARY KEY或UNIQUE索引,备份一个数据表的过程如下:
1、锁定数据表,避免在备份过程中,表被更新
mysql>LOCK TABLES READ tbl_name;
2、导出数据
mysql>SELECT * INTO OUTFILE ‘tbl_name.bak’ FROM tbl_name;
3、解锁表
mysql>UNLOCK TABLES;

相应的恢复备份的数据的过程如下:
1、为表增加一个写锁定:
mysql>LOCK TABLES tbl_name WRITE;
2、恢复数据
mysql>LOAD DATA INFILE ‘tbl_name.bak’
  ->REPLACE INTO TABLE tbl_name;

如果,你指定一个LOW_PRIORITY关键字,就不必如上要对表锁定,因为数据的导入将被推迟到没有客户读表为止:

mysql>LOAD DATA  LOW_PRIORITY  INFILE ‘tbl_name’ 
  ->REPLACE INTO TABLE tbl_name;

3、解锁表
mysql>UNLOCK TABLES;



*用直接拷贝的方法备份恢复
备份一个表,需要三个文件:

对于MyISAM表:
tbl_name.frm  表的描述文件
tbl_name.MYD 表的数据文件
tbl_name.MYI  表的索引文件

对于ISAM表:
tbl_name.frm  表的描述文件
tbl_name.ISD 表的数据文件
tbl_name.ISM  表的索引文件

你直接拷贝文件从一个数据库服务器到另一个服务器,对于MyISAM表,你可以从运行在不同硬件系统的服务器之间复制文件,例如,SUN服务器和INTEL PC机之间。