mysql 表数据备份和恢复
假定表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->UNLOCAK
TABLES;
相关文档:
如果一个MyISAM表包含任何可变长度列(VARCHAR, BLOB或TEXTDynamic),或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,动态存储格式被使用。
这个格式更为复杂一点,因为每行有一个表明行有多长的头。当一个记录因为更新的结果被变得更长,该记录也可以在超过一个位置处结束。
你可以使用OPTIMIZE TAB ......
今天小编要和大家说的是handler的用法,希望对大家有所帮助。
HANDLER tbl_name OPEN [ AS alias ]
HANDLER tbl_name READ index_name { = | >= | <= | < } (value1,value2,...)
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST } ......
1. 停到运行的mysql: /etc/init.d/mysql stop
2. 使用skip-grant-tables这个选项启动MySQL: /usr/bin/mysqld_safe --skip-grant-tables &
3. 现在可以不用密码进入mysql 了。
# myql
>   ......