数据库的备份与恢复是一个十分重要的环节。作为一款饱受欢迎的开源数据库,MySQL也具有十分丰富的保障功能。
备份数据库有两种办法,一是在MySQL里面用SQL语言备份,另外一种办法mysqldump工具,首先是前者,把Employees表的所有列备份到/home/fedora里面:
SELECT * FROM Employees INTO OUTFILE ‘/home/fedora/Employees.txt’;
若是使用mysqldump,则可以把整个数据库的表结构备份下来:
mysql -h localhost -u root -p 123456 YGGL Salary > /home/fedora/Salary.sql
也可以把整个数据库的所有表备份:
mysqldump -u root -p 123456 –database YGGL > /home/fedora/YGGL.sql
恢复数据表可以使用LOAD DATA语句:
LOAD DATA INFILE ‘/home/fedora/Employees.txt’ REPLACE INTO TABLE Employees;
同样在bash里面,mysql也可以用于恢复数据库:
mysql -u root -p 123456 YGGL < /home/fedora/YGGL.sql
mysqlimiport提供了LOAD DATA INFILE的功能:
mysqlimport -u root -p 123456 –low-priority –replace YGGL < /home/fedora/Salary.sql
日志是一种有效的方式保证了数据的安全,MySQL提供了二进制日志保证了数据的安全。不过在默认情况,MySQL并不会启用日志。启用日志的办法是my.cnf的[mysqld]巷下添加log-bin=/var/mysql/bin-log,然后重启MySQL服务器即可。
查看日志可以通过mysqlbinlog:
mysqlbinlog bin-log
保存日志,可以在MySQL内使用SQL语句:
FLUSH LOGS;
把数据库恢复到特定日志之下:
mysqlbinlog bin-log.aaa | mysql -u root -p 123456
使用SQL语句清除所有日志:
RESET MASTER;
清楚特定文件名的日志:
PURGE MASTER LOGS TO ‘/var/mysql/bin-log’;
删除特定日期的日志:
PURGE MASTER LOGS BEFORE ’2002-10-25′;
MySQL还可以使用phpMyAdmin和MySQL Workbench等图形化客户端备份和恢复数据库,而且更加直观。
