将你的网站从MySQL改为PostgreSQL

2016-01-29 14:51 24 1 收藏

将你的网站从MySQL改为PostgreSQL,将你的网站从MySQL改为PostgreSQL

【 tulaoshi.com - MySQL 】

我的站点最初是采用PHP驱动,由MySQL数据库支持的方案,这在当时是一个明智的方案。在2001年夏天,我将我的数据库换成了PostgreSQL(有时也简称为Postgres)。

这个教程分为两部分,第一部分讲述了我进行这种转换的动机,并一步步地解释了如何将已存在有MySQL的数据转换到Postgres中。第二部分将会解释如何根据新的数据库系统对PHP进行相应的调整。

转换的动机

我第一次了解Postgres是在PHPBuilder网站的一篇文章中。这篇文章将Postgres和MySQL进行了比较,当时我正在使用 MySQL。但是,当我阅读了这篇文章后,我对Postgres着了迷 -- 但是当时我还没有想到对我的网站进行重新的设计。

我继续使用MySQL,因为我的主机提供商只能提供MySQL的支持,这是我所无法改变的。直到有一天,主机提供商的主机崩溃了。我立即换了一个主机提供商,与原来的那个相比,新的主机提供商有很多不同,他们在安全性和稳定性方面对我作出了更多的承诺。新公司试图说服我使用Postgres,因为 Postgres要比MySQL来得更稳定,但是我当时没有接受这个建议,因为我的网站已经根据MySQL完成了全部的编码工作。他们只好专门为我的站点安装了MySQL。于是问题开始了。

我的第一个工作是将旧服务器上的MySQL的数据拷贝到新的主机上。首先,我将已有的数据dump到一个SQL文件中,然后在新的主机上导入这个SQL文件。在处理这个数千行的文件时,MySQL迅速地崩溃了。重启MySQL后,其中大概只有一半数据成功地导入了,而且MySQL只能间歇性地工作。最后,他们不得不删除了已经导入的信息让我再试一次。MySQL再次崩溃。这种情况重复了好几次,直到最终我决定将我的SQL文件分割成几块。我不得不又试了几次,最后终于将绝大多数的数据都成功地导入到新的MySQL服务器中。一切都好了,我总算松了一口气。

在下面的几个月中,MySQL几乎每两周都要崩溃一次,其中最惨痛的一次是在2001年6月底。这一次,存储在MySQL中的数据完全被毁坏了。我有一个 SQL的备份文件,但是因为上次向MySQL中导入大量数据的痛苦的经历,这一次我再也不想通过这个备份恢复数据了。这时,公司再次建议我对我的网站进行转向,使用Postgres。由于MySQL的失败,最终我接受了这个建议。

将数据从MySQL转移到Postgres中

将数据从MySQL转移到Postgres是一个不大的挑战,因为Postgres比MySQL支持了更多的SQL的标准格式,在POstgres中直接使用SQL的dump结果是不可能的。但是,SQL语法相当相似,因此对于我来说,这并没有花费太多的时间。

对MySQL的Dump结果进行转换

首先,要求你的主机提供商为你的帐号建立一个数据库。和MySQL数据库一样,Postgres的数据库也由一系列包含实际数据的数据表组成。然后,使用mysqldump命令为你的MySQL数据库做一个dump文件。

  mysqldump -u username -p databasename  sqldump.txt

使用FTP将整个dump文件下载下来。现在在你的计算机上有了这个SQL文件,你可以将其转换成Postgres可以导入的文件。

首先,从dump文件中剪切所有的MySQL的CREATE TABLE查询,并将其粘贴到一个单独的文本文件中。下一步是使用Postgres可以理解的语言重新对数据表进行定义。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

Postgres建立表的SQL和MySQL非常类似,但不完全一样。下面是一个例子:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

  CREATE TABLE practicetable  {  someID SERIAL,  time TIMESTAMP DEFAULT now(),  name VARCHAR(50),  address VARCHAR(50),  city VARCHAR(50),  state VARCHAR(2),  country VARCHAR(3) DEFAULT 'USA',  postlcode VARCHAR(15),  age smallint,  lattitude real,  longitude real,  somebool boolean,  message textitem  };

来源:http://www.tulaoshi.com/n/20160129/1494466.html

延伸阅读
将盆花从土壤栽培改为无土栽培的方法 将盆花从土壤栽培改为无土栽培的方法 无土栽培有许多土壤栽培没有的优点,它使花卉从泥土中解放出来,实现植物、容器、环境的完美结合。怎样将土壤栽培改为无土栽培呢?具体做法有如下几个步骤。 (1)脱盆去土: 将盆花从瓦盆中取出,注意不能伤根和折断叶子,脱盆后将植株上...
标签: 照片
一位纽西兰的街头摄影师 Sim Ahmed 为了想让大家都爱上摄影,于是在自己居住的城市张贴他自己的街头摄影作品,他印了约500张的照片,将每一张照片都表框,并且在拍摄那些照片的地点将这些照片贴在附近的墙上。自从他开始与他居住的城市分享他的街头摄影作品之后,开始陆陆续续收到陌生人email给他的感谢文,我想知道自己的照片能带给大家喜悦的...
幻灯片的形状较方(4:3)是在早期版本的PowerPoint中使用到的。目前为止许多电视和视频都已采用宽屏和高清格式,PowerPoint 也是如此,默认的幻灯片大小是宽屏(16:9)。我们可以将幻灯片大小从标准更改为宽屏也可以将幻灯片大小从宽屏更改为标准。另外还将为大家介绍下当PPT无法自动缩放内容大小时该怎么处理。下面是具体的操作步骤,希望不懂得朋...
简介:PHP+MYSQL网站注入扫描工具,针对类似夜猫文章下 载系统比较有效,界面是仿教程的hdsi中的PHP注入模块写 的,实现原理是参考angel的SQL Injection with MYSQL 写的,网上有很多,不再细说。 界面截图: http://www.wrsky.com/attachment/3_1891.jpg 源码下载: http://downloads.2ccc.com/general/inter...
在PowerPoint之前的版本中,幻灯片的形状较方 (4:3),宽屏和高清格式已被电视和视频采用,新版本的PowerPoint中默认的幻灯片大小是宽屏 (16:9),可以通过下面提供的方法更改幻灯片大小。 我的电脑是宽屏的如何设置幻灯片播放是全屏的? 投影仪一般都是标准屏的,比如1024×768,所以你先确定投影仪的分辨率,然后把电脑的分辨率也调整一...

经验教程

17

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部