备战备荒
当blog再一次显示连接不到数据库的时候,我再一次被伤害了。
Sic的blog已经长草,看来他也一心钻研Maxthon2去了。对于这个时常发发羊癫疯的LBS^2,显然属于有娘生没娘养的尴尬状态。
没办法了,有时间把blog程序转了上Wordpress,简洁,迅速,不过是PHP还需要MySQL支持。
走为上策,粮草先行,先转几个教学文章过来:
============================================
[方法分享]LBS成功转换WordPress 2.0 作者:漫步水中的鱼
原文地址:http://www.uniu5.com/blog/article.asp?id=320
我觉得自己实在是很能折腾,这几天把基本上我知道的所有BLOG程序都试用了一遍。 -_-#
之前就看别人用WordPress 很羡慕,那么多的实用插件,突发奇想自己试着把现在用的LBS转换为WordPress。
在数据转换的过程中遇到过很多问题,多亏得到了zola,SkyLanD的热心帮助,在此表达感谢;同样感谢的还有提供LBS2WP工具的作者Sunu 以及相关参考日志的作者。
运行WordPress2.0的环境:
本地:Windows 2000 professional+Apache v2.2.0+IIS 5.0+PHP v4.4.2+MySQL v4.0.17&v5.0.18+phpMyAdmin 2.7.0+Zend Optimizer
空间:FreeBSD+Apache+PHP 4.3x+MySQL4.0.22+phpMyAdmin 2.7.0
至于为什么用了两个不同的MySQL版本之后会解释的。
下面是LBS转换成为WordPress的过程:
分别在MySQL v4.0.17&v5.0.18环境下测试成功,并成功将本地数据库转移到测试空间上。
1◎首先上传LBS to WordPress的转换工具(在压缩包内) 点此下载,到LBS的数据库目录,修改第23行的数据库名为自己的数据库名。浏览这个转换文件所在的页面,分别导出分类/日志/评论的SQL脚本,记得要另存为utf-8编码。
2◎安装WordPress(安装过程比较简单故略)后打开phpMyAdmin,把MySQL连接校对改为utf8_general_ci, 同时把phpmyadmin里所有有关WP的表和表中字段的collation (校勘)字符集由latin1_general_ci改为utf8_general_ci。(解决乱码问题的关键)



3◎在phpMyAdmin中Import刚才导出的SQL文件,运气再加上人品不错的话应该你的LBS已经成功的转换成为WordPress了。是不是很简单啊?

下面把我在转换过程中遇到的一些问题以及解决办法分享给大家:
a.出现乱码的解决方法
解决的关键就是统一编码为utf-8,这里引用zola的解决办法,希望对出现此问题的blogger有所启发
[quote]MySQL的版本差异会引发Wordpress出现乱码. MySQL 4.0x 版本以下升级到了4.1x或者移动Wordpress到使用4.1x 的主机上将会遇到乱码问题。如果遇到此问题,首先,将Wordpress 的wp-includes的wp-db.php,在这句后面
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
加一句:
$this->query(”SET NAMES ‘utf8′”);
[/quote]
这样就可以保证apache和MySQL之间传递的是UTF8编码,但是,加这条代码前请确认你的MYSQL数据库的版权低于4.1,不是4.1x就不要添加,不然会报错。 最后,清空原来的乱码数据,再输入任何含中文的数据后,在任何地方都看不到乱码了。
b.导入LBS的SQL命令文本总是不能正确执行
这里好像没什么好的解决办法,或许是人品问题吧。我也请教过zola,自己试验了差不多两个小时,得出一个很勉强的解决办法:
将SQL命令分段复制到SQL的执行窗口,然后再执行SQL命令,直到把所有的指令都执行完,每次可以复制一小部分,一次复制太多,可能浏览器窗口会假死,直到命令复制成功才能提交执行命令。不要截断一个完整的SQL指令,不然会提示执行出错。

c.分别使用MySQL v4.0.17&v5.0.18测试得出的结论
在MySQL v4.0.17下的WordPress数据库里所有的中文都是乱码,在MySQL v5.0.18里WordPress数据库中中文显示正常。用Google搜索了一下找到了原因:
[quote]MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES ‘utf8′;
修改wp-includes/wp-db.php中这段代码:
$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面這行
$this->query(”SET NAMES ‘utf8′”);[/quote]
全新安装的WordPress:

LBS已经彻底转为WordPress:

如果你在转换过程中遇到问题,请在此留言,我一定尽力帮你解决。
演示地址请见:
http://friendsclub.be/phevoz/(确认已经无效-nibby)
Added:菜鸟级LBS转换WordPress的方法请看这里:
[续]LBS转换WordPress 2.0的菜鸟级方法
参考日志:
LBS转WordPress全攻略
WordPress数据库恢复手记
解决PHP存取MySQL 4.1乱码问题
感谢以上日志的作者。
PS:哪位有不错的PHP+MySQL的空间,推荐一下,最近我找了几个国内的都不怎么样,有怎么样又太贵了。-_-#





[lol] [lol] [lol] 看不懂,飘过
[Reply]