走一次WordPress过场-清理WP数据库冗余


这次不光清理了以前不会写文时候copy的一些无用冗余文章外,还彻头彻尾的清理了上传的文章图片和无用资源。想来也是亏,以前一开始的时候就觉得自带编辑器不好用,后来发现无论是可维护性还是便捷性均高于其他三方编辑器(我用了一年百度UE,现在吃亏了)

关于无用资源和无用图片

可以使用这款插件: Media Cleaner 但是对于不是媒体库中的该如何处理?我用的死办法,用正则匹配出数据库中每个和UE上传有关的文件路径,然后和UE中上传的文件进行对比,数据库中找不到这个文件的引用,删之。

关于数据库的迁移

WP看起来很方便,数据库也很简单,也就几张表,但是如果你经常安装插件主题尝试后不满意又删除,你会发现,在你的数据库中留下了大量无用字段,毫无用处但是拖慢速度。解决办法:重新创建一个新的WordPress,也就是一份最新的原始的WP,然后针对导出的数据库进行修改,保留创建字段,将数据插入字段改为你自己的(去除option表)【非常耗时,某些字段需要补充,否则插入失败,备份后谨慎操作】,保留原始WP中的themes、uploads、plugins 并移动到新的WP中,一个一个设置【费时,但是效果好】。另外关于php内存不够的问题,请依次查看ngnix,php,wp的日志,或许可以帮到你,如果你之前是正常的,一般情况下是因为数据库连接或者某个插件导致,不要多想,不必要重装服务器和修改php等配置。以我出现的问题为例:

我使用Docker在本地创建了一个一模一样的WP并可以正常运行,但是放到服务器后,一直是502,502大多数时候是php执行超时,ngnix等不到回应导致,开启WP的调试模式和查看各种日志后发现,问题出在文件和数据库,具体原因未知。

开启调试:

在wp-config.php中加入以下三行,第一行本来就有,请去掉自带的

define('WP_DEBUG', true); 
define('WP_DEBUG_DISPLAY', false); 
define('WP_DEBUG_LOG', true);)

解决办法:按本地的方式,在云端重新创建并执行数据选择导入,也就是上面说的:

然后针对导出的数据库进行修改,保留创建字段,将数据插入字段改为你自己的(去除option表)【非常耗时,某些字段需要补充,否则插入失败,备份后谨慎操作】
保留原始WP中的themes、uploads、plugins 并移动到新的WP中,一个一个设置【费时,但是效果好】

然后测试却发现没有插件导致问题,但是问题已经解决。很奇怪

关于部署的数据库问题

对于多数据库用户分配的,分配给多个系统或者应用的,请一定注意用户权限,有的是localhost,有的是127.0.0.1,这两种是不一样的,请分别授权再尝试。

因为数据库不正确会引发:502无响应,404图片资源找不到,相对路径错误等等。小心谨慎

关于本地与服务的域名、资源链接问题

在本地用编辑器打开搜索替换,或者sql执行以下语句均可(wp_options以及域名根据你自己的进行修改):

UPDATE wp_options SET option_value = replace(option_value, '192.168.1.104:8001','lckiss.com') ;
UPDATE wp_posts SET post_content = replace(post_content, '192.168.1.104:8001','lckiss.com') ;
UPDATE wp_comments SET comment_content = replace(comment_content, '192.168.1.104:8001', 'lckiss.com') ;
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, '192.168.1.104:8001', 'lckiss.com') ;

最后

真是麻烦的两天,一切以主机的数据为基础,拒绝负优化,眼光长远,往易于维护的方向看。

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - 走一次WordPress过场-清理WP数据库冗余


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.