1. 使用备份文件进行数据恢复
/bin/cp /path/to/backup/filename /var/lib/mysql/databasename/ -rf
上述命令的意思是将备份文件拷贝到MySQL对应数据库的目录下,覆盖原有文件。
2. 使用二进制日志进行数据恢复
mysqlbinlog /var/lib/mysql/mysql-bin.000001 | mysql -uroot -p databasename
上述命令的意思是将二进制日志文件解析并还原到指定的数据库中。
3. 使用InnoDB的redo日志进行数据恢复
mysql -u root -p SET GLOBAL innodb_fast_shutdown = 0; /etc/init.d/mysql stop cd /var/lib/mysql/databasename/ mv ibdata1 ibdata1.bak mv ib_logfile* ib_logfile*.bak /etc/init.d/mysql start
上述命令的作用是关闭MySQL服务并备份原有InnoDB数据文件,然后重新启动MySQL服务,MySQL会自动根据redo日志进行数据恢复。
4. 使用MyISAM的数据文件进行数据恢复
mysql -u root -p DROP DATABASE databasename; CREATE DATABASE databasename; USE databasename; SET autocommit=0; ALTER TABLE table1 DISABLE KEYS; LOAD DATA INFILE '/path/to/datafile' INTO TABLE table1; ALTER TABLE table1 ENABLE KEYS; SET autocommit=1;
上述命令的意思是先删除原有数据库,然后重新创建并进入该数据库,关闭自动提交机制后批量导入数据到MyISAM表,最后打开自动提交机制。