Typecho从SQL Lite迁移到MariaDB(MySQL)网上大多数教程都没有用,本人网站今天数据库从SQL Lite3无损迁移到MariaDB(因为网站架构升级了一下,四台Web服务器一台SQL服务器负载集群),这里需要用到的工具有Navicat 15(破解版还是正版都可以,软件我不提供)
第一步先创建一个空数据库,网站本体上传到服务器上(宝塔面板,AppNode,还是手动都适用此方法);
删除config.inc.php(觉得自己行的话可以选择不删除);复制网站/usr目录下的SQL Lite文件,使用Nvicat连接SQL Lite数据库;使用面板创建一个数据库(或者自己手动创建一个数据库),宝塔需要开启允许所有人访问此数据库,AppNode将允许的IP地址填上%,手动创建的自己体会吧;
第二步,接上一步操作,浏览器直接打开Typecho的安装界面,配置MySQL/MariaDB数据库参数,并且安装网站(安装完之后什么都不要操作,也不要登录);打开Nvicat,连接网站的MySQL/MariaDB数据库(如果你一开始没设置所有IP连接会连接不上);
迁移前需要确认两件事情:1、两个数据库的表前缀是不是一样的 2、需要一个清醒的脑子和一双眼睛
分析Typecho的数据数据库结构,数据库的主要存储的文章,页面保存在Typecho_contents(前缀是Typecho_)
用户表是Typecho_users;网站信息配置文件所在的位置是Typecho_options;栏目分类在Typecho_metas;网站的留言信息在Typecho_typecho_messages;如果你的网站启用了SMMS,那么你的SMMS插件的数据内容就在Typecho_smms_image_list;文章的静态生成id储存在Typecho_relationships;其他的基本上不重要,这些迁移就可以了;
第三步,迁移文章和页面信息,SQL Lite数据库和MySQL PostgerSQL数据库的文章页面信息不一样,有字段上的区别,SQL Lite 的typecho_contents里面有个views字段,这个字段在MySQL MariaDB里面是不存在的,这里直接导出SQL Lite的typecho_contents数据表,导出向导选择csv
导出成csv,下一步检查是不是导出的contents表(一般都都contents表),下一步取消views(补充一个agree也需要删除)
导出全部取消勾选,在倒数第二行取消views字段,其他默认就好,最后一页点击开始导出成csv
第四步,导出成csv之后呢在MySQL数据库导入新建的数据库;其他的导入方法均一致,没有需要删除的字段,只需要导出成csv再导入到MySQL MariaDB;
第五步,安全问题,AppNode直接在防火墙面板关闭公网的3306端口,宝塔面板停用3306,使用手动方法的用firewalld,ufw,iptables等防火墙软件关闭公网地址的3306端口即可(也可以重新建一个没公网访问的数据库)
评论