发一篇将背景数据从Berkeley的文件DB转到MySQL
这些过程被存储和运行在数据库服务器上,以减少在客户端的处理过程,从而最大限度地提高了处理能力,因为通常情况下数据库服务器会运行地更快。存储过程并不是MySQL独有的功能,但是这个最近新增加的功能使得这个数据库比以前更具吸引力了。比来决意把MT的背景数据从Berkeley的文件DB转到MySQL。缘故原由之一是利用干系数据库能够取得更多的天真性,好比运转一条sql来变动一切entry的某一个属性;别的一个缘故原由是为了提早熟习一下这个数据库,牙牙网站利用假造主机,DreamHost供应的数据库是MySQL,而我夙昔次要利用了SQLServer,Oracle和DB2,Postgresql也只懂得了一点,而MySQL则几近没有打仗过。下载了5.0.27安装文件,安装顺遂,利用了第一个默许端口3306,UTF-8的数据库字符集。
安装完成,运转了命令行客户端,输出help,给出的匡助命令未几,也没见到有关数据库创立的命令,便查了安装的匡助文件,构造的还算不错,很完全,很快找到相干的命令:
检察已无数据库showdatabases;毗连数据库testusetest;创立数据库mtcreatedatabasemt;接上去寻觅把已有DB转化到MySQL的办法,很快找到一个第三方的工具mt-db-convert.cgi,能够完成MT撑持的几种分歧的DB之间的转换。
下载返来放到cgi-bin的mt目次,在扫瞄器会见运转,输出新创立的MySQL数据库称号mt,用户名root,暗码,主机填进localhost,入手下手Convert。转换历程很快就完成了,不到1分钟,没有呈现毛病提醒,转换信息以下:
mt-db-convert.cgi($Rev:173$):ConvertingyourMTdatabetweenDBengines(forMT3.2)Loadingdatabaseschema...Loadingdata...MT::Author.(1objectssaved.)MT::Blog..(2objectssaved.)MT::Trackback....................
(327objectssaved.)MT::Category....................
(50objectssaved.)MT::Comment..(2objectssaved.)MT::Entry..............................
(514objectssaved.)MT::ipBanList(0objectssaved.)MT::Log...............................................
(437objectssaved.)MT::Notification(0objectssaved.)MT::Permission....
(4objectssaved.)MT::Placement........................................
(527objectssaved.)MT::Template......................................
(83objectssaved.)MT::TemplateMap..........(10objectssaved.)MT::TBPing(0objectssaved.)MT::session.............................
(29objectssaved.)MT::PluginData(0objectssaved.)MT::Config.(1objectssaved.)MT::FileInfo(0objectssaved.)DonecopyingdatafromDBMtoDBI::mysql!Allwentwell.Yourrecommendedsetting-------------------------------------
#DataSourceR:/SITE/mt-dbObjectDriverDBI::mysqlDatabasemtDBUserrootDBHostlocalhostDBPassWordcomein-------------------------------------
然后修正mt-config.cgi文件,把数据源改成MySQL。
再次会见MT,看起来统统一般,乃至原本的session都没有丢失落,只是背景利用的数据已改动了地位。
不外发明了中文乱码成绩,Google到了这个办法,按文修正后,必要再次实行mt-db-convert.cgi,把数据从头导进MySQL,再会见MT,乱码没有了,一切中文显现一般。
转换后又发明了一个新的成绩,原DB中的Tags全体丧失,缘故原由是mt-db-convert.cgi仅撑持到MT3.1,3.3的新功效带来的数据变更大概还会有别的信息丧失。
NOTE
ThisscriptiscompatiblewithMovableTypeversion3.1x.Ididnttestitatanyotherversions.
实在MT本身已供应了转换工具mt-db2sql.cgi,与mt.cgi在统一目次傍边。利用办法是,安装好MySQL数据库服务,并创立好用于MT的DB,将MySQL数据库的设置信息到场mt-config.cgi,并同时保存原BerkeleyDB的路径设置,即坚持两种DB的设置同时失效,然后经由过程扫瞄器运转mt-db2sql.cgi,转换会主动入手下手,显现以下信息:
Loadingdatabaseschema...Loadingdata...MT::Author1MT::Blog13MT::Trackback...DonecopyingdatafromBerkeleyDBtoyourSQLdatabase!Allwentwell.确认转换乐成后,再修正mt-config.cgi,正文失落BerkeleyDB的设置便可。
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。 一个是把SQL语句写到客户端,可以使用DataSet进行加工; 个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。 如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 总感觉自己还是不会SQL 分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
页:
[1]