|
“学会接受并欣赏命运发给我们的牌,也许会有意想不到的乐趣。 我总认为,坦然的心境就是感受到幸福的理由。” |
如何用SQL重新排序留言跟评论的id
Author:风之逸 Date:2008-09-28 21:59
起因是当时blog被垃圾评论肆虐,然后删除了很多无用的评论跟留言。
后来自己琢磨过滤器为何无效,重新开启这个功能之后基本上就控制住了评论机器人。
这样id就出现了很大一段空缺。因为根据MySQL auto intrement的设计,删除了之后的id是不会重新利用的。
于是就有了重新排序的想法。去网上爬文,发现有效也直接的就是删除这个field,然后再生成。
本机测试,确实有效。
自然我是以f2blog的数据结构作为例子啦。其他的理论上不是问题。
后来发觉还是有问题,分析一下发觉是comments表里面的parent field跟id有关联。于是就需要做点别的处理。
去网上参照了一篇文章,
http://www.bbstobbs.com/thread-16-1-1.html
然后基于自己SQL的一点基础,尝试性的写了一个SQL Script,有效~
代码如下,相信简单的修改后对别的blog数据结构也是可以应用的。
重新排序guestbook id:
后来自己琢磨过滤器为何无效,重新开启这个功能之后基本上就控制住了评论机器人。
这样id就出现了很大一段空缺。因为根据MySQL auto intrement的设计,删除了之后的id是不会重新利用的。
于是就有了重新排序的想法。去网上爬文,发现有效也直接的就是删除这个field,然后再生成。
本机测试,确实有效。
自然我是以f2blog的数据结构作为例子啦。其他的理论上不是问题。
后来发觉还是有问题,分析一下发觉是comments表里面的parent field跟id有关联。于是就需要做点别的处理。
去网上参照了一篇文章,
http://www.bbstobbs.com/thread-16-1-1.html
然后基于自己SQL的一点基础,尝试性的写了一个SQL Script,有效~
代码如下,相信简单的修改后对别的blog数据结构也是可以应用的。
重新排序guestbook id:
ALTER TABLE `f2blog_guestbook` ADD `oldid` int(8) NOT NULL; update f2blog_guestbook set oldid=id; ALTER TABLE `f2blog_guestbook` DROP `id`; ALTER TABLE `f2blog_guestbook` ADD `id`
SQL 更换blog用户名
Author:风之逸 Date:2008-09-27 23:01
一个小技巧,呵呵 简单的一句SQL,就可以批量更换blog表中的用户名。句法如下:
我们以f2blog为例吧,比如想更换整个blog中作者'admin'去'webadmin',可以对几个表执行这个语句即可。
假设表前缀为f2blog_
在phpmyadmin中运行这几句SQL即大功告成了。
UPDATE `table_name` SET `field` = REPLACE(`field`,"from_name","to_name");
我们以f2blog为例吧,比如想更换整个blog中作者'admin'去'webadmin',可以对几个表执行这个语句即可。
假设表前缀为f2blog_
UPDATE `f2blog_members` SET `username` = REPLACE(`username`,"admin","webadmin"); UPDATE `f2blog_comments` SET `author` = REPLACE(`author`,"admin","webadmin"); UPDATE `f2blog_guestbook` SET `author` = REPLACE(`author`,"admin","webadmin"); UPDATE `f2blog_logs` SET `author` = REPLACE(`author`,"admin","webadmin");
在phpmyadmin中运行这几句SQL即大功告成了。
riamm.com/blog
Author:风之逸 Date:2007-07-09 21:23
今天再次尝试恢复朋友的数据库,试图解决编码的问题。一开始的难题是如何访问原来的数据库,因为朋友自己也不太弄得清楚,大汗。后来推测数据库跟我那时候用的应该是一个ip,尝试後果然如此。终于看到了原来数据库的原貌了,哎!果然,default charset is latin1, 所有表的字符集也是latin1,要命的latin1啊。
这样就好,至少内容的恢复不是问题了。问题转移到如何将这要命的latin1 to utf8。终究utf8才是王道啊~
去网上查了不少,尝试之后都是白搭。有个转换的步骤怎么也没法做出来,在sql文件里加 set names utf8 根本就没效果。后来灵机一动,既然是wordpress的,wordpress里有这样问题的人应该也有的吧。立即跑去wordpress里搜索了一下。呵呵!找到了这个文章。读完才知道就算改变了数据库结构也是白搭,里面的问题相当复杂,这段说的很清楚:
“The Problem :To convert character sets requires using the the MySQL ALTER TABLE command. When converting the character sets, all TEXT (and similar) fields are converted to UTF-8, but that conversion will BREAK existing TEXT because the conversion expects the data to be in latin1, but WordPress may have stored unicode characters in a latin1 database, and as a result, data could end up as garbage after a conversion! ”
这可不是什么好事,幸好来这里看了看。他提供了一个方案,但是写的太模糊,操作也太复杂。好在给了个链接去一个代码 还有一个plugin,代码基本没用,不知道怎么用。plugin是个好东东,就靠它了!
converter.zip (10.35 KB ,Downloaded: 39 time(s).)
下面的问题比较滑稽。因为plugin用的话必须要博客管理员密码,但是我朋友的博客我哪里来密码。本来想跟他要,但又觉得不太好,后来又是灵机一动用了个怪招,去database里改管理员邮箱为我的,然后。。。lost password,汗
插件一用之后数据库就转好了,进去查看都是可爱的utf8了。高兴啊~再把域名恢复到原来的配置,一切就完毕了。
riamm.com是第一位加入我的合租的朋友,也是实实在在的难兄难弟,一起遭遇了27a.cn的龌龊经历。这样一起租用hm,总算是安定下来了。能联系到一起,也是缘分,努力帮他解决点问题,他高兴,我也高兴啊。这个wp转数据库字符集的经历,对网上别的朋友也会有帮助的吧,希望有缘的朋友能路过这里,呵呵。
这样就好,至少内容的恢复不是问题了。问题转移到如何将这要命的latin1 to utf8。终究utf8才是王道啊~
去网上查了不少,尝试之后都是白搭。有个转换的步骤怎么也没法做出来,在sql文件里加 set names utf8 根本就没效果。后来灵机一动,既然是wordpress的,wordpress里有这样问题的人应该也有的吧。立即跑去wordpress里搜索了一下。呵呵!找到了这个文章。读完才知道就算改变了数据库结构也是白搭,里面的问题相当复杂,这段说的很清楚:
“The Problem :To convert character sets requires using the the MySQL ALTER TABLE command. When converting the character sets, all TEXT (and similar) fields are converted to UTF-8, but that conversion will BREAK existing TEXT because the conversion expects the data to be in latin1, but WordPress may have stored unicode characters in a latin1 database, and as a result, data could end up as garbage after a conversion! ”
这可不是什么好事,幸好来这里看了看。他提供了一个方案,但是写的太模糊,操作也太复杂。好在给了个链接去一个代码 还有一个plugin,代码基本没用,不知道怎么用。plugin是个好东东,就靠它了!
converter.zip (10.35 KB ,Downloaded: 39 time(s).)下面的问题比较滑稽。因为plugin用的话必须要博客管理员密码,但是我朋友的博客我哪里来密码。本来想跟他要,但又觉得不太好,后来又是灵机一动用了个怪招,去database里改管理员邮箱为我的,然后。。。lost password,汗
插件一用之后数据库就转好了,进去查看都是可爱的utf8了。高兴啊~再把域名恢复到原来的配置,一切就完毕了。
riamm.com是第一位加入我的合租的朋友,也是实实在在的难兄难弟,一起遭遇了27a.cn的龌龊经历。这样一起租用hm,总算是安定下来了。能联系到一起,也是缘分,努力帮他解决点问题,他高兴,我也高兴啊。这个wp转数据库字符集的经历,对网上别的朋友也会有帮助的吧,希望有缘的朋友能路过这里,呵呵。
有一点虚幻感
Author:风之逸 Date:2007-07-04 22:44
朋友的blog恢复数据的时候总有问题,跟着一起研究了半天也是没有结果。
要命的mysql char set,不知道是哪里的问题,恢复出来的数据表都是latin1的,然后所有的中文都是乱码。而且这个sql文件就是utf8的encoding,晕倒了。
后来得知他的blog已经丢失过一次了,然后又跟我一样撞上了27a.cn,很可能这次又是损失惨重。
突然有些没有安全感,用flashfxp登录网站,看着那一堆的文件就头晕。再进到phpmyadmin里面更是怕起来,生怕点了什么不该点的数据就不见了。还有整个站点的cpanel。。。如果没记错的话,删除一个数据库只需要轻点一个X型图标,一切就烟消云散了。
还是应该有点自信吧,我还不至于蠢到到处乱点而不知道点了什么。况且一切都还是好好的,网络的特点就是如此,充满了不稳定跟未知数。只有尽自己所能,走的稳当一点。
要命的mysql char set,不知道是哪里的问题,恢复出来的数据表都是latin1的,然后所有的中文都是乱码。而且这个sql文件就是utf8的encoding,晕倒了。
后来得知他的blog已经丢失过一次了,然后又跟我一样撞上了27a.cn,很可能这次又是损失惨重。
突然有些没有安全感,用flashfxp登录网站,看着那一堆的文件就头晕。再进到phpmyadmin里面更是怕起来,生怕点了什么不该点的数据就不见了。还有整个站点的cpanel。。。如果没记错的话,删除一个数据库只需要轻点一个X型图标,一切就烟消云散了。
还是应该有点自信吧,我还不至于蠢到到处乱点而不知道点了什么。况且一切都还是好好的,网络的特点就是如此,充满了不稳定跟未知数。只有尽自己所能,走的稳当一点。
- 1


