typecho后端数据库迁移 作者: morningp 时间: 2021-04-08 分类: 建站相关 最近进行了一次typecho后端数据库的迁移,从mysql迁移到了sqlite3。 不得不说sqlite3比mysql轻量了不少,一下次腾出我将近100MB的内存 ~~又可以折腾点别的东西了~~,其实这个迁移也没有太多东西可以说,就简单的步骤,所以这次就不分step123了。 首先就是转换数据库格式,这边用一个超方便的python模块:mysql-to-sqlite3,debian10需要先安装python3-pip,然后`pip3 install mysql-to-sqlite3`,之后就可以使用了,方法很简单: ``` mysql2sqlite Options: -f sqlite3.db -d mysql-database -u mysql-user -p mysql-passwd -t mysql-tables(optional) ``` 这里解释一下,f是sqlite3的db文件,没有的话它会自动创建在当前目录下,d是mysql数据库的数据库名,u是mysql数据库的用户名(需要有对数据库的权限),p是mysql数据库的密码,这个密码是明文显示,如果你没有别的需求可以直接输入,如果你之后还要保留mysql数据库做别的用途,最好还是建立一个临时用户赋权用来临时转换比较好。这个t是可选,是用来指定转移哪些表的。另外还有很多的选项,具体可以到[项目页面][1]去查看。 然后就是重新安装typecho,这里需要备份一下webroot下的/usr(这里是主题插件和配置)还有你想要备份的一些文件。在安装过程中typecho会自动生成一个文件路径给你放置sqlite3的db,这边建议放在默认路径里,然后记得给/usr和db文件777的权限,不然会有问题(虽然直接下一步不会出错,但是在安装完成后会有报错)。然后根据提示无脑下一步就可以了,在最后会问你说数据库里面有数据是否保留,选择使用原有数据就可以了。 最后需要注意的几点: 1.迁移之前最好把CDN关了,不然CDN会重刷,浪费流量不说还会造成访问变慢。 2.迁移之前最好把原webroot下的东西都备份一下, 因为sqlite3可能会不支持某些主题。 3.typecho这边是要求db必须777,总的来说还是有风险的,最好做个定时任务备份一下防止炸~ ~~结果还是写了123~~ [1]: https://pypi.org/project/mysql-to-sqlite3/ 标签: none