内容发布更新时间 : 2024/11/9 9:37:36星期一 下面是文章的全部内容请认真阅读。
本文档介绍如何使用tar包在Linux(我用的centos5.5)下编译安装pgsql和配置php-pgsql扩展,使php能够连接pgsql数据库。 一.安装postgresql数据库
1.首先到postgresql 官网http://www.postgresql.org/下载安装包,这里用的是postgresql-8.4.0.tar.gz这个版本。 2.开始安装
为pgsql创建系统用户组和用户
[root@localhost src] groupadd postgresql //新增postgreql用户组 [root@localhost src] useradd –g postgresql postgres //新增postgres用户属于postgresql用户组
[root@localhost src] passwd postgres //修改postgres用户密码,回车后输入密码
解压安装包并编译安装
[root@localhost src] tar –xzvf postgresql-8.4.0.tar.gz [root@localhost src] cd postgresql-8.4.0
[root@localhost postgresql-8.4.0] ./configure --prefix =/usr/local/pgsql [root@localhost postgresql-8.4.0] gmake [root@localhost postgresql-8.4.0] gmake install 配置环境变量
[root@localhost postgresql-8.4.0] vi /etc/profile //配置环境变量,打开profile文件,加入以下配置
LD_LIBRARY_PATH=/usr/local/pgsql/lib
1
export LD_LIBRARY_PATH PATH=/usr/local/pgsql/bin:$PATH export PATH
MANPATH=/usr/local/pgsql/man:$MANPATH export MANPATH [root@localhost postgresql-8.4.0] source /etc/profile //使环境变量生效 建立数据库集群
[root@localhost postgresql-8.4.0] mkdir /usr/local/pgsql/data //新建数据文件目录
[root@localhost postgresql-8.4.0]
chown -R postgres.postgres /usr/local/pgsql/data //更改数据文件目录的属主为postgres
[root@localhost postgresql-8.4.0] su postgres //切换到postgres用户下 [postgres@localhost postgresql-8.4.0] cd /usr/local/pgsql/bin [postgres@localhost bin] ./initdb--locale=C-E UNICODE –D ../data/ //初始化数据库,设置locale为C,并且template1编码为UNICODE,使数据库支持中文
初始化成功后,出现以下运行结果
Success. You can now start the database server using: ./postgres -D ../data or
./pg_ctl -D ../data -l logfile start 配置和启动、关闭数据库
[postgres@localhost bin] su //切换到root用户下
2
[root@localhost bin] touch /var/log/pgsql.log //新建日志文件 [root@localhost bin] chown postgres /var/log/pgsql.log //更改文件所属用户为postgres
[root@localhost bin] su postgres //切换到postgres用户 [postgres@localhost bin] cd /usr/local/pgsql/data
[postgres@localhost data] vi postgresql.conf //打开配置文件,去掉下面两行前面的#注释,并将监听地址改为*。
listen_addresses = '*' # what IP address(es) to listen on; port = 5432 # (change requires restart)
[postgres@localhost data] cd ../bin //切换到pgsql 的bin目录 [postgres@localhost bin] ./postmaster D /usr/local/pgsql/data > /var/lo g/pgsql.log 2>&1 & //启动数据库
[postgres@localhost bin] ./pg_ctl stop -D /usr/local/pgsql/data //关闭数据库的命令
cp /usr/local/src/postgresql-8.4.0/contrib/start-script/linux
/etc/rc.d/rc.pgsql //从解压出来的安装包中拷贝启动脚本到/etc/rc.d/目录下,并重命名为rc.pgsql
[postgres@localhost bin] chmod +x /etc/rc.d/rc.pgsql //为启动脚本增加可执行权限
[postgres@localhost bin] vi /etc/rc.d/rc.pgsql //打开启动脚本,加入以下配置
prefix=/usr/local/pgsql
3
PGDATA=/usr/local/pgsql/data PGUSER=postgres PGLOG=/var/log/pgsql.log
[postgres@localhost bin] /etc/rc.d/rc.pgsql restart //使用启动脚本重启数据库 开启远程连接
[postgres@localhost bin] cd ../data //从bin目录切换到data下 [postgres@localhost bin] vi /usr/local/pgsql/data/pg_hba.conf 在# IPv4 local connections:
host all all 127.0.0.1/32 trust 后增加
host all postgres 0.0.0.0/0 md5 重新启动数据库就可以远程连接了。 //附,其他数据库操作
创建数据库dm :./createdb dm 创建用户: ./createuser -A -D -E -P dm Enter password for new role: 123456 Enter it again: 123456
Shall the new role be allowed to create more new roles? (y/n) y CREATE ROLE
使用psql :./psql -d dm -U dm
Welcome to psql 8.2.4, the PostgreSQL interactive terminal. Type: \\co
4
pyright for distribution terms \\h for help with SQL commands \\? for help with psql commands
\\g or terminate with semicolon to execute query \\q to quit dm=> \\q
在psql中若需要使用中文,先发送: 用户名=> set client_encoding to 'gbk'; 二.配置php-pgsql扩展。
1.编译安装php的时候,加入关联pgsql的安装目录, --with-pgsql=/usr/local/pgsql 2.安装pgsql扩展 yum install php-pgsql
然后就可以编写程序进行测试了。
5