[ Log On ]

pulog数据转移

pulog.net还在进行中。这几天在忙着研究数据转移,因为我可不想把写了几年的博客封印起来。我是要把所有文章转移到pulog新的DB上的。

因为boblog的db是mysql的,而pulog.net的db是mssql的。虽然网上有一些mysql转mssql的工具,但是我大概研究了一下都不是很好用(甚至可以说是非常的难用,或者几乎无用- -)。于是决定还是自己写数据转移吧,顺便补补sql :)。

如图,我在pulog.net的solution下面建了一个Winform的project叫DataTransfer



用sqlbulkcopy+mysql connector Net也不算很复杂。很快就写好了一个prototype。由于现在的host的mysql server不支持remote connection,所以不得不手动把db从host上导出,导入本地的mysql server后再通过我的程序进行转移。用putty连到host上,不知道为什么下面这句命令总是给我报access denied(非常确定用户名密码没错)。[quote]mysqldump -u shawnjia_dump -p 密码 -h 127.0.0.1 --default-character-set=utf8 shawnjia_shawnblog > db.sql[/quote]于是无奈只好通过phpmyadmin导出。问题又来了,万恶的主机商的default charset是utf8,也就是说我的所有的数据都是通过utf8编码保存在db里的。这样通过phpmyadmin显示/导出来的都是乱码(但是在boblog的程序里显示正常,估计是因为程序在抓数据前加了这句"set names utf8;")。为此研究/郁闷了好久(days),最终终于找到解决方案:
1. 在本地通过phpmyadmin导入从host mysql server导出的乱码文件(db.sql)
2. 在本地再导出一次[quote]mysqldump --user="root" --password="密码" --force --quick --default-character-set=utf8 blo7 > db1.sql[/quote]3. 查找[quote]/*!40101 SET NAMES utf8 */;[/quote]改成[quote]/*!40101 SET NAMES utf8 */;[/quote]查找所有的[quote]DEFAULT CHARSET=utf8;[/quote]改成[quote]DEFAULT CHARSET=utf8;[/quote]继续查找[quote]set utf8[/quote]改成[quote]set utf8[/quote] 等于是把所有 utf8 都改成 utf8
4. 通过下面的命令或者phpmyadmin导入修改过的文件(db1.sql):[quote]mysql --user="root" --password="密码"  blo7 < db1.sql[/quote]

呼,折腾半天,总算解决乱码问题了。之后用DataTransfer的prototype试了试,基本上挺爽。看图(是在Microsoft SQL Server Management Studio里面的哦。。。):

Blog table


Category table


Users Table


嘿嘿,前10名在我blog注册的会员。这里特别表扬一下。

通过prototype的测试可行性,后面基本上就是修改和完善一下DataTransfer就ok了。



Add your Comment


Supported UBB tags: [b],[u],[i],[color]