跳至主要内容

成功将动网论坛的Access数据库转成了Mysql数据库

近来公司重新租用了空间,新的空间只支持PHP语言,而原来公司使用了动网的ASP论坛,就必须进行转换工作了。看过动网官方论坛,知道动网官方也推出了一些转换插件,感觉应该不是件难事,不过实际操作起来,比想象中复杂好多(水平有限)。
原来用的动网ASP论坛好像是6.0版本,太久了,记得不是很清楚。于是查找了相关的asp文件,真是6.0。记得当时根据使用的需要,将程序的UI局面进行大量的改进,做成一个小型的CMS。做完后才发觉有些不妥,就是要再进行改造会很麻烦,因而不可以随着官方程序升级而升级,官方现在都用了ASP8.0了,而现在还是在用6.0的版本。不过也有个好处,就是比较安全,因为关键的内容都改了,比如连数据库名称和路径,包括数据库关键的表和表结构;关键的目录,改了名称;关键的文件,改了名称,也改了一些函数和权限设置。记得为了改这些东西,有段时间基本天天泡在动网论坛的各个版面中。
现在准备将论坛转换成刚推出不久的动网PHP2.0版本,而由于隔了几代,麻烦也就大了,数据库的转换很是麻烦,动网官方没有推出直接从ASP6.0转换到动网PHP2.0的插件。要转换数据库,基本过程是:ASP6.0→ASP7.0→ASP7.1→PHP2.0
从官方下载了相关插件,又从网上搜索了一个免费的ASP空间(原来租用的ASP空间已经过期停用了),在该空间上操作。将数据库从ASP6.0转到ASP7.1,这个过程还算顺利。到了最后,要将数据库从ASP7.1转换到PHP2.0时,遇到了些挫折。
先按说明,把转换程序上传到PHP服务器上运行,老是出错。于是想想干脆将数据库从ASP7.1转成最新版的ASP8.0,再从ASP8.0转到PHP2.0,可能会好点,结果也是一样,出错!本来是以为一天内可以搞好的,看来是不行了。去论坛问,暂时没有人帮忙,可能这些情况也是太菜了,没人理,记得以前动网回复速度很快的,不知为什么。
看了一下该转换文件,凭着当年学习改ASP程序的三脚猫改功夫,感觉该文件虽然是PHP运行环境,但好像需要调用到ASP的函数,于是觉得应该换一下方式试一试。就是找个既可以运行PHP,又支持ASP运行的环境来执行这个数据转换插件。现实总是充满波折,由于新空间仅支持PHP语言,而刚申请的免费空间之支持ASP语言,所以又要花点时间去找个两者皆兼顾的免费空间。本来想自己搭一个运行环境,但由于自己的机器近来那个IIS好像坏了,怎么搞也是运行出错,没辙!!!所以放弃自己搭建的念头,因为要从重装系统开始,加上没有搭建PHP运行环境的经验,弄不好可能要花上一两个星期才弄好,可能还要搭上几个通宵!
好在,在网络世界里,免费的午餐还是有的,不出两分钟,就找到一个合适的,注册个帐号,搞定。将文件通过FTP上传到开空间,运行!一切正常!高兴得从凳子弹了起来,把前后左右的同事都吓着了,罪过!!高兴归高兴,转换完后,又是下班了,明天继续。这个转换还是要注意一下,更能是在网络上转换,受速度限制,最好是一个表一个表的转,还有将每一次转换的数量设小点,我将其设为30,这是死机几次得来的教训!
高兴的气氛还没有消失,但新的麻烦来了,而且有点烫手。
打开论坛,发现有些不对劲,明明有几十位用户,在版头还是显示为1,最新注册用户还是Admin,在动网论坛上查了一下,说可能是缓存问题,刷新一下就可以了。也是准备登陆后台(动网的PHP2.0和原来的ASP后台管理模式差不多,之前玩过ASP的,上手容易!),清一下缓存。不料,后台管理居然登录不进去,不是密码或用户错误,而是老是提示验证码错误!密码就是显示的验证码,不知乍的。在官方论坛找也找,说是Cookie问题,清掉浏览器的Cookie就行了。也是试了一下,果然!!真是一起乌龙事件!
再下来就是,帖没有内容?进入到任何一帖,但是空的!明明是转换成功了嘛,怎么回事?又上官方去找答案,说更能是存放帖内容的dv_bbs1表没有转换成功,这麻烦就大了!进去Mysql数据库看看,真是这样,dv_bbs1表是有,字段也齐全,但就是一点内容都没有。
例牌,重新早导,一次不行,两次,三次。。。都不行,唉没办法了?重新搭建PHP2.0,重新建立Mysql数据库,数据库也重新从ASP6.0开始,再转换一次,结果还是不行了,晕倒!!
接下来是一个漫长的dv_bbs1过程,大概花了三天时间。
先找到了SQLyog,SQLyog作为管理Mysql的桌面软件,真是一流,而且该软件是免费的,最终可以成功导入dv_bbs1数据库,其功不可没。
没有操作过Myqsl数据库,所以想用软件直接将Access导入到Mysql中,在网上找到了几个:
Full Convert Enterprise Trial,导入功能强大,有30天免费试用,够用了!但导入后,乱码,无论怎么操作,没辙!
DBConvert for MS Access & MySQL,这款看上去也不错,不过也是乱码。。。
ESF Database Convert ,导入也不错,但没有注册版只能导入十条数据,也是乱码,没辙!
正一筹莫展,搜到了月光博客的一篇介绍db2mysql的文章,下来用了一下,真的可以导出,不过导出来的是SQL,好在对SQL有些了。
需要可以下载该软件,免费的,而且很小,只有八十几K,强!!!
下载1:DB2MYSQL
下载2:DB2MYSQL

生成的SQL,可以直接在Mysql运行;其实数据也不多,就2987条,不过,可能该表比较复杂,花了不少时间才导出成功,开始还以为是死机了(生成的SQL有5.4M)。
虽然数据只有2987条,当放在EditPlus中,有57383行。现在是该SQLyog出场了,由于考虑网络速度的问题,一段一段的搞拷贝SQL代码,大概5000条一次,运行Insert into的操作。花了点功夫,终于把数据全部导入成功!!!
节外生枝:
  1. 正在高兴终于完成工作,不料又出状况了。原来ASP版的动网,在编辑器中的图片路径,是带了“Uploaldfile”,而PHP的动网却没有,因而,全部有图片的帖子,图片都不会显示。在EditPlus将刚才的SQL文件中的“Uploaldfile”全部替换掉,再重新做导入动作,有点摆乌龙的感觉!
  2. 论坛展区的图片也是因为“Uploaldfile”的问题,显示不了,找到dv_upfile的表,导出数据(SQL文件),同样在EditPlus中将“Uploaldfile”全部替换掉,再倒入,也OK了。
最后,为了在首页可以有登录框,可以登录后进入论坛,修修改改,终于也写了个登录界面出来,将代码也放出来:

<?php
define('THIS_SCRIPT', 'sigin');
require_once 'global.php';
$lang = load_lang($lang, 'login' );
?>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<TITLE>Sigin</TITLE>
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<link rel="stylesheet" type="text/css" href="templates/default/images/style_css_1.css" />
</HEAD>

<BODY>

<!--<?php print <<<EOT
-->
<div style="width: 400px;position: absolute;top: 0px;right: 0px;">
<table cellpadding="5" cellspacing="0" align="center" class="tableborder1" style="border-top:none;">
<form action="login.php?action=chk" method="post">
<tr>
<th colspan="2" align=left>{$lang['logininputtitle']}</th></tr>
<tr align=left>
<td class="tablebody6" width="25%"><B>{$lang['inputname']}</B></td>
<td class="tablebody5"><input name="username" type="text" tabindex="1"/> <a href="reg.php">{$lang['reglinktitle']}</a></td></tr>
<tr align=left>
<td class="tablebody6"><B>{$lang['inputpass']}</B></td>
<td class="tablebody5"><input name="password" type="password" tabindex="2"/> <a href="lostpass.php">{$lang['forgetpass']}</a></td></tr>
<!--
EOT;
if ( $fsetting['logingetcode'] == 1 ){
print <<<EOT
-->
<tr align=left>
<td class="tablebody6" width="25%"><B>{$lang['inputgetcode']}</B></td>
<td class="tablebody5">
<input name="getcode" type="text" tabindex="3"disabled_by_dv__onFocus="setObjSize(document.getElementById('cercode'),120,48)" /> <br/>
<script language="javascript" src="./dv_getcode.js.php?w=0&h=0"></script><br/>点击左边输入框获取验证码,请确认你的浏览器开启Flash和Javascript
</td></tr>
<!--
EOT;
}
print <<<EOT
-->
<tr align=left>
<td class="tablebody6" valign="top" width="25%" ><b>{$lang['inputdate']}</b></td>
<td valign="middle" class="tablebody5" > <input type="radio" name="cookiedate" value="0" class="radio" /> {$lang['cookiedate_1']}
<input type="radio" name="cookiedate" value="3600" class="radio" /> {$lang['cookiedate_2']}
<input type="radio" name="cookiedate" value="86400" class="radio" /> {$lang['cookiedate_3']}
<input type="radio" name="cookiedate" value="2592000" class="radio" checked="checked"/> {$lang['cookiedate_4']}
<input type="radio" name="cookiedate" value="31536000" class="radio"/> {$lang['cookiedate_5']}
</td></tr>
<tr align=left>
<td valign="top" width="30%" class="tablebody6" ><b>{$lang['inputhidden']}</b></td>
<td valign="middle" class="tablebody5" > <input type="radio" name="userhidden" value="1" class="radio"/> {$lang['hidden_yes']} <input type="radio" name="userhidden" value="2" checked="checked" class="radio"/> {$lang['hidden_no']}
</td></tr>
<input type="hidden" name="comeurl" value="{$comeurl}"/>
<tr>
<td class="tablebody5" valign="middle" colspan="2" align="center"><input type="submit" name="submit" value="{$lang['loginsubmit']}" class="button"disabled_by_dv__onClick="dvbbsf();"/></td></tr></form></table>
<!--
EOT;
?>-->
</div>
</BODY>
</HTML>

Power by 写写改改™

此博客中的热门博文

Google sites中文超和谐版

新版的Google sites已经支持38种语言,其中就有中文版。
中文版一推出,估计会有更多人涌来使用,其中可能有一小撮是别有用心的人。所以按Belen的猜想,估计Google sites被墙是不久的事了。为了伟大某党和谐事业需要,大部分贪小便宜的广大用户,就乖乖掏钱去租空间折腾去吧!!!

Google sitesGoogle Apps是绝配,可以免费搭建中小型企业的在线办公环境。Google Sites之前还只是Google Apps用户可以使用,5月才开始给Google注册用户使用,现在又增加了更多语言支持,GFans又有得玩了(有GFans说用Google产品是玩网游)。

不过,和Google已经放弃的Google Pages相比,Google Sites本身自有对G-F-W免疫的能力(所以称其为“超和谐版”),原因是其支持加密访问,可以绕过那堵破墙,访问地址是:https://sites.google.com

这样看起来,似乎国内的中小型企业也可以用Google Apps来省钱了,其四大主要应用:GMailGoogle DocsGoogle CalendarGoogle Sites都可以用加密来访问,很轻松的绕过那堵破墙。只是要绑定域名的话,还是会有点麻烦。会折腾Google Apps的用户,也有得玩了。
Power by 写写改改™

没有其他,之前的Blogger还有多少路过呢?路过就签名吧

来点气氛吧
Power by 写写

图解从Godaddy转移域名到Name.com

前传:这几天公司的邮箱老给客户投诉退信了,咨询了263,答复是我司的域名MX解释不正常。一听说我司的域名放在Godaddy上,技术人员马上建议将域名转移,原因不用说,你懂的。
思想斗争了大半天,最后还是不想转到国内来(原因你应该也是懂得的!),先转移到Name.com试一试吧。
整个转换过程大概一个钟吧,期间不用打任何电话、不用传真身份证复印件。花费就8.49刀(转移到新的域名注册商,需要给域名多一年),相当于人民币53元左右,便宜。
转移很简单,有图为证:
1、如上图,进入Godaddy的域名管理中,点要注意的域名。