学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> MYSQL >> 谈谈MySQL数据库恢复编码转换问题


谈谈MySQL数据库恢复编码转换问题


为了今后wordpress数据库备份方便,把数据库默认的latin 1 转换成了utf8

大致过程如下:

1.备份 http://www.sh18.org/blog/ 数据库

2.用 EditPlus 打开 http://www.sh18.org/blog/备份的数据库 文件,查找“DEFAULT CHARSET=latin1” 用“DEFAULT CHARSET=utf8”替换.

3.创建一个新的数据库,用phpadmin进入界面后,

(1).点击左边你的数据库名后,右上方会有“Operations/操作”按钮,进入后最下面有“Collation:/整理: ”选项,选择 相应的utf8后按“go/执行”确认【这个步骤是把数据库默认编码设置成utf8】

(2).点击“Home /主目录”按钮 ,返回主界面 更改“MySQL connection collation: /collation (校勘)字符集”为utf8_general_ci 【这个步骤有什么用不知道,反正做了没坏处】

参考文档

http://yanfeng.org/blog/585/

http://voivo.de/blog/374.html

http://www.zuola.com/weblog/?p=355

然后导入前面备份的数据库(修改过的,注意导入的时候选utf8)

4.更改WordPress程序中wp-includes/wp-db.php的文件:选择在56行处添加

$this->query(”SET NAMES ‘utf8′ “);

复制语句时小心字体哦,我复制的代码加入后报错,原来那些>”‘什么的都不正确。

更改后的情况是:

}
$this->query(”SET NAMES ‘utf8′ “);
$this->select($dbname);
}

5.更改 wp安装目录下的wp-config.php 文件,把里面数据库相应的参数修改为 新的数据库名字。

6.然后 登陆 www.sh18.org/blog 基本正常,发现文章的中文分类名出现“??”字符,进入后台,重新更改分类后一切正常.

7.发新贴看是否一切正常。。。。。

8.待测试。。。。

因为流量关系,为网站做了个镜像站点,等待流量快超标的时候做个域名转向来缓解压力。在新的服务器上安装 了Wordpress后,开始进行数据库操作:

1. 备份原来网站的数据库:操作很简单,进入PhpMyAdmin后选择导出,在表单选择框里选择全部。选择”另存为文件”中的”gzip 压缩”,点击”执行”便会让你保存到本地电脑中了。

2. 恢复备份数据库到新的服务器中:进入新服务

器的PhpMyAdmin,(因为已经在这里建立了Wordpress,所以已经存在一个新的数据库了),在”结构”中选择所有表单,然后在”选中项”中

选择”删除”,原有的数据库清空。然后在”SQL”中点击”浏览”选择刚才备份的数据库文件,点击”执行”即可。

可在这个时候出现了问题:总是说什么超出了Memory,或者说超过了30秒的限制,无法正常导入。导入数据库文件大小限制一般为2M,我的备份文件不过才800多KB,为什么不行呢?后来明白,可能是新的服务器连接速度有些慢,所以在进行导入时,总是超过了时间限制。解决办法:备份数据库时,分几次备份不同的表单,而不是一次重复全部,就这样重复1,2两个步骤三次,总算把数据库正常导入了。

3. 站内链接调整:因为数据库相同,当然网站里所有站内链接也会和原来的相同,全部指向的还是原来的服务器地址。在PhpMyAdmin里选择数据库中的”wp_options“表单,点击”浏览”然后按”option_name”排列主键顺序,找到”option_name”键值为”siteurl”一项,点击”编辑”按钮,把里面的原来网站链接地址改为新的。然后找到”home”一项,同样编辑把链接改成新的网址。

所有数据库操作完成,

登陆网站查看,一下子傻了,除了我在侧边栏里写的自我简介那几个字是正常汉字,其它全以”?”显示。难道字符设置不对?不可能啊数据库是原来的,当然字符

设置也是原来的”utf-8″。上网找答案,原来以前MySQL版本为4.0的转到4.1或者更高版本时,会出现乱码。上服务器的说明中查看,原来老的服

务器MySQL版本为4.0,而新的服务器版本为5.0,晕哦,可真先进。继续google,在”桑林志“的”MySQL 4.1x 中文乱码问题“中找到了解决方案。

1. 设置数据库的”collation”为”utf8_general_ci”:因为在新的服务器中建立数据库时,没有指定其为utf-8,更没设定collation,所以需要先设定数据库的字符集。

执行命令:

alter database myblog
character set utf8;

然后再在”操作”或者数据库PhpMyAdmin的登陆页面中设定collation为”utf8_general_ci”。

2. 更改WordPress程序中wp-includes/wp-db.php的文件:我是选择了在56行处,而不是44行处(桑林志的做法)加入了如下语句:

$this->query(”SET NAMES ‘utf8′”);

复制语句时小心字体哦,我复制的代码加入后报错,原来那些>”‘什么的都不正确。

再次登陆网站查看,终于一切正常!!!整个操作时间耗费了大概6个小时,主要是网上查找解答太费时间,而且在设定collation时麻烦不小,因为我原来的服务器竟然关闭了调整Collation的命令。显示为:”使用链接表的额外特性尚未激活。要查出原因,请单击此处。”,还好它默认为字符集为”UTF-8″不然估计我的数据库是无论如何都不能恢复到更高版本的MySQL里了。

技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

根本不用做这么多,备份时加编码就行了
--default-character-set=utf8...
游客 发表于2008-3-11 13:06:58
对"谈谈MySQL数据库恢复编码转换问题"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 谈谈MySQL数据库恢复编码转换问题 相关内容
Google搜索中 谈谈MySQL数据库恢复编码转换问题 相关内容
雅虎中 谈谈MySQL数据库恢复编码转换问题 相关内容
Sogou搜索中 谈谈MySQL数据库恢复编码转换问题 相关内容

相关软件 最新回复帖子:

·谈谈MySQL数据库恢复编码转换问题
·nesox让电子邮件营销原来如此轻松!
·Freehand常用特色功能疑难解答
·明明白白Windows XP中EFS加密及解密
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·网上常用表情符号
·掌握VB中的ADO数据对象编程
·DW Ultradev打造留言本(二)
·VB编程中钩子的实现及应用


  相关软件 谈谈MySQL数据库恢复编码转换问题相关文章
MySQL数据库的数据备份与恢复学习 MySQL数据库的数据备份和恢复详解
MySQL数据库自动恢复的简单操作过程 MySQL数据库损坏恢复操作其过程总结
实际应用:MySQL数据库备份与恢复 一个MySQL数据备份/恢复的简易方法
详细介绍MySQL数据库的备份与恢复问题 有关数据库的修复恢复基础知识简介
MySQL数据库简单的数据备份与恢复过程 教你在MySQL从口令恢复设置的密码
MySQL数据库的root口令恢复方法总结 如何使用MYSQL数据库进行备份数据恢复
教你如何将MySQL数据库的密码恢复 一个简单的MySQL备份恢复数据指令
在Linux异构网络中备份MYSQL数据库 实例教程:MySQL数据库密码恢复笔记
MySQL数据库下损坏数据的恢复操作 一个MySQL数据库的简易备份方法介绍
MySQL入门学习之修改、备份和批处理 有关MySQL的双机热备份问题杂谈