关于MySql备份恢复时错误的处理

  今天在对MySql数据库进行备份、恢复时,出现一个问题,从源数据库用Bascup as SQL dump方式备份出的SQL文件,执行恢复Restore from SQL dump时出现错误,在打开错误日志时,记事本停止响应,无法打开,因此看不到错误日志,无法确定错误原因。后来一想记事本停止响应应该是日志文件过大造成的,而记事本对大的文本文件处理能力较弱,于是上网下载UltraEdit文本编辑器,手动果然可以打开错误日志(winxp系统错误日志路径:C:\Documents and Settings\zqd\Application Data\SQLyog\sqlyog.err),错误信息为:“Got a packet bigger than 'max_allowed_packet' bytes”,一看备份的SQL文件含数据体积达到60多兆,几经折腾找到了解决的办法:

  1、在MySql安装目录下找到配置文件my.ini(Linux下为my.cnf),如果找不到则说明系统没有这个配置文件(默认好像没有这个文件),可以手动新建一个txt文件,将名称改为My.ini(Linux下未测试)。

  2、在其中添加:max_allowed_packet=500M(可以自定义)

  3、如果My.ini存在,则还是按步骤2操作,完毕后,还须查找是否有这样一行:old_passwords=1。如果有,则删除,如果没有则OK。

  4、此时即可用恢复功能恢复超大的备份文件。一切正常。