将后台数据从Berkeley的文件DB转到MySQL_MySQL
最近决定把MT的后台数据从Berkeley的文件DB转到MySQL。
原因之一是使用关系数据库可以获得更多的灵活性,比如运行一条sql来变更 所有entry的某一个属性;另外一个原因是为了提前熟悉一下这个数据库,牙牙网站使用虚拟主机,DreamHost提供的数据库是MySQL,而我从前 主要使用了SQL Server,Oracle和DB2,Postgresql也只了解了一点,而MySQL则几乎没有接触过。
下载了5.0.27安装文件,安装顺利,使用了第一个默认端口3306,UTF-8的数据库字符集。
安装完成,运行了命令行客户端,输入help,给出的帮助命令不多,也没见到有关数据库创建的命令,便查了安装的帮助文件,组织的还算不错,很齐全,很快找到相关的命令:
查看已有数据库show databases;连接数据库 testuse test;创建数据库 mtcreate database mt;接下来寻找把已有DB转化到MySQL的方法,很快找到一个第三方的工具mt-db-convert.cgi ,可以实现MT支持的几种不同的DB之间的转换。
下载回来放到cgi-bin的mt目录,在浏览器访问运行,输入新创建的MySQL数据库名称mt,用户名root,密码,主机填入localhost,开始Convert。转换过程很快就完成了,不到1分钟,没有出现错误提示,转换信息如下:
mt-db-convert.cgi($Rev: 173 $): Converting your MT data between DB engines (for MT 3.2) Loading database schema... Loading data... MT::Author . (1 objects saved.) MT::Blog .. (2 objects saved.) MT::Trackback .......... ..........
(327 objects saved.) MT::Category .......... ..........
(50 objects saved.) MT::Comment .. (2 objects saved.) MT::Entry .......... .......... ..........
(514 objects saved.) MT::IPBanList (0 objects saved.) MT::Log .......... .......... .......... .......... .......
(437 objects saved.) MT::Notification (0 objects saved.) MT::Permission ....
(4 objects saved.) MT::Placement .......... .......... .......... ..........
(527 objects saved.) MT::Template .......... .......... .......... ........
(83 objects saved.) MT::TemplateMap .......... (10 objects saved.) MT::TBPing (0 objects saved.) MT::Session .......... .......... .........
(29 objects saved.) MT::PluginData (0 objects saved.) MT::Config . (1 objects saved.) MT::FileInfo (0 objects saved.) Done copying data from DBM to DBI::mysql! All went well. Your recommended setting -------------------------------------
# DataSource R:/SITE/mt-db ObjectDriver DBI::mysql Database mt DBUser root DBHost localhost DBPassword comein -------------------------------------
然后修改mt-config.cgi文件,把数据源改成MySQL。
再次访问MT,看起来一切正常,甚至原有的session都没有丢掉,只是后台使用的数据已经改变了位置。
不过发现了中文乱码问题,Google到了这个方法 ,按文修改后,需要再次执行mt-db-convert.cgi,把数据重新导入MySQL,再访问MT,乱码没有了,所有中文显示正常。
转换后又发现了一个新的问题,原DB中的Tags全部丢失,原因是mt-db-convert.cgi仅支持到MT 3.1,3.3的新功能带来的数据变化可能还会有其它信息丢失。
NOTE
This script is compatible with Movable Type version 3.1x. I didn't test it at any other versions.
其实MT自身已经提供了转换工具mt-db2sql.cgi,与mt.cgi在同一目录当中。使用方法是,安装好MySQL数据库服务,并创建好用于MT的DB,将MySQL数据库的配置信息加入mt-config.cgi,并同时保留原Berkeley DB的路径配置,即保持两种DB的配置同时生效,然后通过浏览器运行mt-db2sql.cgi,转换会自动开始,显示如下信息:
Loading database schema...Loading data...MT::Author 1MT::Blog 1 3MT::Trackback ...Done copying data from Berkeley DB to your SQL database! All went well.确认转换成功后,再修改mt-config.cgi,注释掉Berkeley DB的配置即可

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

无线投屏为什么会连接不成功呢?有些小伙伴反映在使用无线投屏的时候,会出现连接失败的情况,这是怎么回事呢?无线投屏连接失败怎么办?请确认您的电脑、电视和手机是否连接在同一个WiFi网络上。投屏软件要求设备在同一网络下才能正常使用,而快点投屏也不例外。因此,请您迅速检查一下您的网络设置。确定是否支持投屏功能很重要。智能电视和手机通常都支持DLNA或AirPlay功能。如果不支持投屏功能,就无法传屏。确认设备是否正确连接:在同一WiFi下的设备可能有多个,确保连接的是想要实现同屏的设备。4、确保网络的

在局域网内连接打印机启动打印作业时会出现一些小状况,例如偶尔会出现“wpsoffice无法启动打印作业……”的问题,造成无法打印出文件等,耽误我们的工作和学习,造成不好的影响,下面就告诉大家,怎么解决wpsoffice无法启动打印作业的问题?当然你可以升级软件或是升级驱动等方案解决,但是这样花费你好长的时间,下面我就给大家较少一种分分钟可以搞定的方案。首先注意到wpsoffice无法启动打印作业,导致无法进行打印。要解决这个问题,需要逐一排查。另外,确认打印机已经开机并连接好。一般连接不正常会造

PHP500错误全面指南:原因、诊断和修复在PHP开发过程中,我们经常会遇到HTTP状态码为500的错误。这种错误通常被称为"500InternalServerError",它是指在服务器端处理请求时发生了一些未知的错误。在本文中,我们将探讨PHP500错误的常见原因、诊断方法以及修复方法,并提供具体的代码示例供参考。1.500错误的常见原因1.

相信不少朋友都遇到过系统蓝屏的问题,不过不知道win11蓝屏原因是什么,其实导致系统蓝屏的原因是有很多的,我们可以依次排查进行解决。win11蓝屏原因:一、内存不足1、运行太多软件或者游戏消耗内存太大的时候可能发生。2、尤其是现在win11存在内存溢出的bug,所以很有可能遇到。3、这时候可以尝试设置一下虚拟内存来解决,不过最好的方法还是升级内存条。二、CPU超频过热1、CPU的问题原因其实和内存差不多。2、一般会发生在使用后期、建模等软件,或者玩大型游戏时发生。3、CPU的消耗过大就会出现蓝屏

使用苹果手机时,一些用户可能会遇到充电速度缓慢的问题。造成这种问题的原因有很多种,可能是由于充电设备功率过低,设备故障,或是手机的USB接口出现问题,甚至是电池老化等因素导致的。苹果手机充电很慢是什么原因答:充电设备问题,手机硬件问题,手机系统问题。1、用户在使用功率比较低的充电设备时,手机的充电速度就会很慢。2、使用第三方的劣质充电器或者是充电线也会导致充电速度很慢。3、推荐用户使用官方的原装充电器,或者是更换正规的有认证的大功率充电器。4、用户的手机硬件出现问题,比如说手机的usb接口接触不

探索HTTP状态码550的原因及解决方法引言:在网络通信中,HTTP状态码扮演着重要的角色,用于表示服务器处理请求的结果。其中,HTTP状态码550是一种相对较少见的状态码,通常与服务器拒绝执行请求相关。本文将探索HTTP状态码550的原因,并提供解决方法。一、HTTP状态码的基本概念在了解HTTP状态码550之前,我们先来简单了解一下HTTP状态码的基本概

最近有朋友在更新系统后,遇到了win11自动关机的问题,很多情况下都会在玩游戏的时候发生,不知道是什么原因导致的。其实这可能是由于电脑配置不足,或者系统故障造成,下面一起来看看原因及解决方法吧。win11自动关机什么原因一、配置不足1、Windows11系统对于cpu和内存要求比Windows10要高一些。2、尤其是在运行大型游戏等任务时,极易出现自动关机的情况。3、用户可以试着还原到自动关机前的使用情况,右键点击开始菜单图标,打开“任务管理器”页面。4、我们在这个页面查看一下CPU、内存、磁盘

有些朋友在安装Windows10驱动时遇到了安装失败的问题,但是他们不知道失败的原因是什么,也不知道如何解决。这个问题主要有几个不同的原因,下面请跟随我一起来了解一下。win10驱动安装失败是什么原因:一、系统版本目前,Windows10系统已经具备了自动安装驱动的功能。这一功能的引入,使得用户在安装系统时不再需要手动搜索和安装驱动程序,系统会自动检测并安装合适的驱动程序,提供更加便捷的使用体验。如果你的驱动安装失败,那么一种解决方法是尝试更新系统。这可能会修复一些系统相关的问题,从而使驱动能够
