Linux 环境 MySQL 备份各种方法
注意这里是Ubuntu 11.04版本MySQL 5.1 。Windows下的估计有区别。。自己研究去吧!!1.登录MySQL后用BACKUP、RESTORE命令不推荐使
注意这里是Ubuntu 11.04版本MySQL 5.1 。Windows下的估计有区别。。自己研究去吧!!
1.登录MySQL后用BACKUP、RESTORE命令不推荐使用,后面的版本可能会移除。。所以还是别用了!
2。用mysqldump命令备份。假设在firstdb下有个test 表。则运行
mysqldump -uUERNAME -pPASSWORD -hHOSTNAME firstdb test > test.sql
登录后mysql后运行:drop table test ;
现在恢复 : mysql -uUSRNAME -pPASSWORD -hHOSTNAME firstdb
这样原来的test就恢复了。。
当然mysqldump很多参数。。自己man去吧!
3、用select into 做备份
登录mysql后运行:select * from test into outfile "test.dat";
清空表:truncate test ;
恢复可以: load data infile "test.dat" into table test ;
当然还可以用mysqlimport命令代替load data 。。在bash下运行:
mysqlimport -uUSERNAME -pPASSWROD -hHOSTNAME firstdb test.dat ;
这样就可以恢复了。。
不过注意在linux下的权限问题。。这个不解释。。mysql的权限管理用户是一个系统用户--mysql,具体查看相关linux 权限的书籍!
4.利用mysqlhotcopy命令
用法和mysqlimport类似。。这是一个perl脚本。。查看help就会用了。。
5.使用二进制更新的日志文件恢复数据到最近位置。
这个要求打开log-bin选项,在/etc/mysql/my.cnf 下设置。。利用正则表达式很容易就可以找到log-bin选项,,把注释去了就可以了。当然也可以自己加上。
然后利用mysqlbinlog XXXX-bin.XXX 就可以恢复了。。默认应该是放在/var/log/mysql 。。自己利用find命令找。。
6最后一种方法不多说。。直接把整个数据库拷贝。。。利用cp 命令复制到其他目录或文件系统。。恢复也容易。。。