欢迎来到天天文库
浏览记录
ID:19710053
大小:59.50 KB
页数:6页
时间:2018-10-05
《将你的网站从mysql改为postgresql》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、将你的网站从MySQL改为PostgreSQL>>教育资源库 【导读】本文分为两部分,第一部分讲述了我进行这种转换的动机,并一步步地解释了如何将已存在有MySQL的数据转换到Postgres中。第二部分将会解释如何根据新的数据库系统对PHP进行相应的调整。 本文分为两部分,第一部分讲述了我进行这种转换的动机,并一步步地解释了如何将已存在有MySQL的数据转换到Postgres中。第二部分将会解释如何根据新的数据库系统对PHP进行相应的调整。 转换的动机 我第一次了解Postgres是在PHPBuilder网站的一篇文章中。这篇文章将Postgre
2、s和MySQL进行了比较,当时我正在使用MySQL。但是,当我阅读了这篇文章后,我对Postgres着了迷--但是当时我还没有想到对我的网站进行重新的设计。 我继续使用MySQL,因为我的主机提供商只能提供MySQL的支持,这是我所无法改变的。直到有一天,主机提供商的主机崩溃了。我立即换了一个主机提供商,与原来的那个相比,新的主机提供商有很多不同,他们在安全性和稳定性方面对我作出了更多的承诺。新公司试图说服我使用Postgres,因为Postgres要比MySQL来得更稳定,但是我当时没有接受这个建议,因为我的网站已经根据MySQL完成了全部的编码工作
3、。他们只好专门为我的站点安装了MySQL。于是问题开始了。 我的第一个工作是将旧服务器上的MySQL的数据拷贝到新的主机上。首先,我将已有的数据dump到一个SQL文件中,然后在新的主机上导入这个SQL文件。在处理这个数千行的文件时,MySQL迅速地崩溃了。重启MySQL后,其中大概只有一半数据成功地导入了,而且MySQL只能间歇性地工作。最后,他们不得不删除了已经导入的信息让我再试一次。MySQL再次崩溃。这种情况重复了好几次,直到最终我决定将我的SQL文件分割成几块。我不得不又试了几次,最后终于将绝大多数的数据都成功地导入到新的MySQL服务器中。
4、一切都好了,我总算松了一口气。 在下面的几个月中,MySQL几乎每两周都要崩溃一次,其中最惨痛的一次是在2001年6月底。这一次,存储在MySQL中的数据完全被毁坏了。我有一个SQL的备份文件,但是因为上次向MySQL中导入大量数据的痛苦的经历,这一次我再也不想通过这个备份恢复数据了。这时,公司再次建议我对我的网站进行转向,使用Postgres。由于MySQL的失败,最终我接受了这个建议。 将数据从MySQL转移到Postgres中 将数据从MySQL转移到Postgres是一个不大的挑战,因为Postgres比MySQL支持了更多的SQL的标准格
5、式,在POstgres中直接使用SQL的dump结果是不可能的。但是,SQL语法相当相似,因此对于我来说,这并没有花费太多的时间。 对MySQL的Dump结果进行转换 首先,要求你的主机提供商为你的帐号建立一个数据库。和MySQL数据库一样,Postgres的数据库也由一系列包含实际数据的数据表组成。然后,使用mysqldump命令为你的MySQL数据库做一个dump文件。mysqldump-uusername-pdatabasename>sqldump.txt 使用FTP将整个dump文件下载下来。现在在你的计算机上有了这个SQL文件,你可
6、以将其转换成Postgres可以导入的文件。 首先,从dump文件中剪切所有的MySQL的CREATETABLE查询,并将其粘贴到一个单独的文本文件中。下一步是使用Postgres可以理解的语言重新对数据表进行定义。 Postgres建立表的SQL和MySQL非常类似,但不完全一样。下面是一个例子:CREATETABLEpracticetable{someIDSERIAL,timeTIMESTAMPDEFAULTnoeVARCHAR(50),addressVARCHAR(50),cityVARCHAR(50),stateVARCHAR(2),coun
7、tryVARCHAR(3)DEFAULT'USA',postlcodeVARCHAR(15),agesmallint,lattitudereal,longitudereal,someboolboolean,messagetextitem}; 在一个Postgres的表定义中,字段名后面必须跟着字段类型。在上面的例子中我们给出了一些最普通的字段类型,你还可以在有关Postgres数据类型的文档中找到全部的字段类型的列表。对于不同的任务,Postgres在字段类型方面有多种选择,并可以存储各种类型的数据,从Inter地址到货币信息到几何对象
8、的定义。这儿简要地介绍最常用的几种数据类型。 SERIAL类型的字段和MySQ
此文档下载收益归作者所有