Mysql Manual讲得很清楚。实现数据备份有两种方法,一是直接copy mysql data目录的数据文件。第二种就是mysqldmup。
第一方法,没什么可言,也就是写写脚本或是放置ftp上面,以实现远程备份。
第二方法,是官方推荐使用的。mysqldump位于app\bin下面。选项很多。比较常用是-q、-e、--opt、--add-drop-table等。
-q 加速导出数据,而不是全部写入内存后,再导出数据。
-e 导出Insert语句
--opt利用各种优化性能来产生更小、可以更快处理的转储文件
--add-drop-table添加DROP TABLE IF EXISTS tableName;
使用mysqldump不必登陆服务器,本人刚开始就是这样的,搞了半天,一直提示syntax错误。在cmd下,直接进入bin目录。就可以使用mysqldump了,这个跟sql server是不一样的。
例:要备份test数据库。
mysqldump test >d:\test.7-28 -hlocalhost --port=3306 -uroot -p
如果有中文乱码,说明客户端安装与server的字符集不一样.添加一个参数就可解决.例:
mysqldump test --default-character-set=gb2312 >d:\test.7-28 -hlocalhost --port=3306 -uroot -p
2.数据还原
2.1 用管道命令实现两台MYSQL服务器数据同步.
例: -hSoureIp指源数据库
-htargetIp指目标数据库
mysqldump test -hSourceIp -uroot -p | mysql -htargetIp targetDatabase -uroot -p
2.2 使用mysql还原数据库
mysql -u 用户名 -p (密码) -h 主机名 --one-database 还原数据库名 < 路径/备份名.bak,--one-database是指定要恢复的数据库.
例:
c:\>mysql -uroot -p database < d:\test1.sql