mysql的备份和还原的编码问题解决
今天需要从远程服务器down一个uchome的数据库下来,在本地还原。发现一个很不爽的事情:远程8G,N核的linux机器,备份还原操作顺溜溜的,可是在本地的windows,2G普通PC上,才100M的文件,用uchome自带的分卷备份还原,基本上中间都会断掉,要么提示“执行时间过长”(改成200秒,分卷为20M都不行),要么就是中途白屏。得了,用mysqldump备份的一个独立文件来
今天需要从远程服务器down一个uchome的数据库下来,在本地还原。
发现一个很不爽的事情:远程8G,N核的linux机器,备份还原操作顺溜溜的,可是在本地的windows,2G普通PC上,才100M的文件,用uchome自带的分卷备份还原,基本上中间都会断掉,要么提示“执行时间过长”(改成200秒,分卷为20M都不行),要么就是中途白屏。
得了,用mysqldump备份的一个独立文件来运行命令行还原吧。
首先运行还原语句:
mysql -uroot -p123456 mydatabase < d:/backupdatabase.sql
时间缓慢地逝去,一口水喝完,上个厕所,再溜达一下,终于完成了(在远程linux服务器上也就20秒的功夫!)
然后更新缓存,发现数据乱码了,咦,我备份的时候是强制的gbk编码啊!看看备份的语句:
mysqldump -uroot -p123456 –default-character-set=gbk mydatabase > /usr/local/mysql/backup/backup20091026.sql
没错啊!已经设置了默认字符集为gbk了,看来可能是在还原的时候也要设置吧,于是修改还原语句,手工指定字符编码
mysql -uroot -p123456 font –default-character-set=gbk mydatabase < d:/backupdatabase.sql
又是漫长的等待…刷新页面一看,现在乱码解决了。
总结:在不同的操作系统和数据库环境之间备份与还原时,还是两边都强制制定一个字符集最保险。
更多推荐
所有评论(0)