使用PostgreSQL数据库做PHP开发 说明:下面内容更多是讲怎么安装环境的,实际开发内容几乎没有,你可以考虑是否阅读本文。
PostgreSQL数据库应该算是数据库界的启明星,其中一些功能甚至超过了Oracle等商业数据库,在开源世界来讲,可以说是非常不错的,甚至MySQL都跟它差很远。它支持包括JDBC、ODBC、DBI等等数据库链接方式,基本上能够目前所有流行的编程语言进行交互,可以说是适合任何编程开发者。 官方的介绍内容也许更能说明问题:http://www.pgsqldb.org/pgsqldoc-8.0c/preface.html --------------------------------------------------------------------------------------------------------------------------------------------- 何为 PostgreSQL? PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 POSTGRES 领先的许多概念只是在非常迟的时候才出现在商业数据库中。 PostgreSQL 是最初的伯克利的代码的一个开放源码的继承人。 它支持大部分 SQL:2003 标准并且提供了许多其他现代特性: 复杂查询 外键 触发器 视图 事务完整性 多版本并发控制 同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的: 数据类型 函数 操作符 聚集函数 索引方法 过程语言 并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL, 不管是私用,商用,还是学术研究使用。 ---------------------------------------------------------------------------------------------------------------------------------------------- 今天想尝试一下PHP使用PostgreSQL做开发的感觉,于是就赶紧装一个吧。
一开始考虑是在Windows安装最新的8.0.3版本,但是想想,可能实际开发平台更多的是在Unix/Linux下,于是就准备在FreeBSD下做开发,刚好昨天把FreeBSD5.4升级了,赶紧ports一个回来。 cd /usr/ports/database/postgresql80-server cat Makefile 一看,原来最新版是8.0.3,呵呵,正好呀,赶紧装。 make install 漫长等待的过程,它要去下载什么gmake,还要下载postgresql-8.0.3.tar.bz2等文件,老半天才装完。呵呵,很兴奋,启动一下看看: /usr/local/etc/rc.d/postgresql.sh start (这个文件也许你的文件名不是这样) 晕,怎么出错了?反正死活就是启动不了,看来还得手工安装一下,先卸载掉吧: cd /usr/ports/database/postgresql80-server make deinstall 唉,把文件拷走吧: cd /usr/ports/distfiles mv ./postgresql-8.0.3.tar.bz2 /usr/local/src 解压缩: cd /usr/local/src bunzip2 -d ./postgresql-8.0.3.tar.gz2 tar xvf ./postgresql-8.0.3.tar 解压缩成功: cd ./postgresql-8.0.3 配置文件,安装到我们的老目录里: ./configure --prefix=/usr/local/pgsql gmake 等待的过程,到后来,晕,怎么又出错? 提示文件系统已经满了。。。-_-# 我的是虚拟机,空间分配不合理,看看能不能给 /usr 加点空间。 去google狂搜资料,只找到个 tunefs 的命令能解决这个问题,看了半天也没明白,链接: http://www.freebsd.org.cn/snap/doc/zh_CN.GB2312/books/handbook/configtuning-disk.html 想想还是算了,装到其他分区不就完了,看看空间情况: %df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s1a 507630 55060 411960 12% / devfs 1 1 0 100% /dev /dev/ad0s1e 507630 70072 396948 15% /tmp /dev/ad0s1f 2025982 1960440 -96536 105% /usr /dev/ad0s1d 507630 76340 390680 16% /var 那就装到 /var 下吧,呵呵: ./configure --prefix=/var/pgsql gmake gmake install 过程顺利,好,添加个运行pg的用户: adduser Username: postgres Full name: PostgreSQL Server User Uid (Leave empty for default): Login group [postgres]: Login group is postgres. Invite postgres into other groups? []: Login class [default]: Shell (sh csh tcsh bash nologin) [sh]: /bin/csh Home directory [/home/postgres]: Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: yes Lock out the account after creation? [no]: Username : postgres Password : <blank> Full Name : PostgreSQL Server User Uid : 1004 Class : Groups : postgres Home : /home/postgres Shell : /bin/csh Locked : no 建立存放数据库的目录: mkdir /var/pgsql/data 把所有权给postgres用户: chown postgres /var/pgsql/data 切换到用户postgres: su - postgres 初始化数据库: /var/pgsql/bin/initdb -D /var/pgsql/data 开始运行: /var/pgsql/bin/postmaster -D /var/pgsql/data >logfile 2>&1 & 晕,怎么一堆错误!!! postmaster does not know where to find the server configuration file. You must specify the --config-file or -D invocation option or set the PGDATA environment variable. 没有指定配置文件,赶紧看看配置文件再哪里? find / -name "postgresql.conf" /var/pgsql/data/postgresql.conf 哦,原来初始化数据库的时候就建立了配置文件,赶紧写上: ./postmaster --config-file=/var/pgsql/data/postgresql.conf 晕,怎么又出现新的错误? 哦,原来没有配置postgresql.conf的内容,赶紧把重要的配置一下,配置过的内容如下: #--------------------------------------------------------------------------- # FILE LOCATIONS #--------------------------------------------------------------------------- # The default values of these variables are driven from the -D command line # switch or PGDATA environment variable, represented here as ConfigDir. # data_directory = ''''ConfigDir'''' # use data in another directory data_directory = ''''/var/pgsql/data'''' # hba_file = ''''ConfigDir/pg_hba.conf'''' # the host-based authentication file hba_file = ''''/var/pgsql/data/pg_hba.conf'''' # ident_file = ''''ConfigDir/pg_ident.conf'''' # the IDENT configuration file ident_file = ''''/var/pgsql/data/pg_ident.conf'''' 看出来了吧,就是指定了一个数据库文件目录,两个配置文件的路径。 再启动: ./postmaster --config-file=/var/pgsql/data/postgresql.conf LOG: database system was shut down at 2005-07-15 01:20:24 CST LOG: checkpoint record is at 0/A38D20 LOG: redo record is at 0/A38D20; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 678; next OID: 17231 LOG: database system is ready OK,成功。好,看看能不能从我哪儿访问,先访问下默认的5432端口: telnet 192.168.0.215 5432 怎么回事,无法连接?赶紧Google一下,哦,原来是默认只是允许本地链接,要修改配置文件: vi /var/pgsql/data/postgresql.conf 修改以下内容: #--------------------------------------------------------------------------- # CONNECTIONS AND AUTHENTICATION #---------------------------------------------------------------------------
[1] [2] 下一页 [MySql]PHP存取 Mysql 数据乱码终极解决方案 [Web开发]PHP提示Notice: Undefined variable的解决办法 [Web开发]PHP 大小写函数 [Web开发]PHP的sleep函数关闭窗口后是否继续运行? [Web开发]教你如何在PHP开启gzip页面压缩实例介绍 [Web开发]PHP过滤HTML字符串的常用函数使用方法介绍 [Web开发]PHP采集程序常用函数大全 [Web开发]用PHP实现Javascript的escape(),unescape()的方法 [Web开发]常见的PHP截取字符串函数整理 [办公软件]在sybase中插入图片、PDF、文本文件
|