postgreSQL在ubuntu环境下的安装使用

postgreSQL在ubuntu环境下的安装使用

http://www.cnblogs.com/iamonmyway/archive/2011/12/04/2276021.html

PostgreSQL的安装

PostgreSQL是著名的开源数据库(虽然很多人没听说过,大部分人可能对MySQL比较熟悉)。玩了一段时间的PG(PostgreSQL简称),但中间却没有整理过,现在暂时不玩了,也总得整理整理,免得回过头来看看,好象自己这段时间跟白费了似的。

 

下载PG源码

先去PG的官网下载源码。http://www.postgresql.org/download/

Download source code进入其源码ftp,选择一个较新的稳定版本,9.1.0可以。

 

编译安装PG

因为我是在vmware虚拟机里玩的,所以先通过设置共享目录,将主机下的东西传进虚拟机(vmware虚拟机共享文件目录是/mnt/hgfs)。当然也可以通过winSCP之类的文件传输软件将主机的文件传到虚拟机中。最好将虚拟机的ip地址固定,免得每次连接都不一样,可以通过ifconfig eth0 ip 192.168.1.1来固定虚拟机的ip地址。

 

将PG的源码压缩包postgresql-9.1.0.tar传到虚拟机之后,通过命令tar xvf postgresql-9.1.0.tar解压。进到解压后的目录下,便可看到PG的源码目录 

 

打开INSTALL,里面会提示编译源码安装的步骤:

 

  

按照步骤先运行configure,但很不幸,遇到了这样的错误 

 

本来想尝试去解决readline library的库问题,但查了查这也是无关紧要的,因此就加上了--without-readline选项去运行:

./configure --without-readline

这次可以跳过readline的编译问题,但又出现了zlib库找不到的问题,继续忽略,运行:

./configure –without-readline –without-zlib  (没必要)

这下总算顺利通过了。

 

接着就是make,10分钟后,make install顺利安装了PG。

 

按默认选项安装完的PG会放在/usr/local/pgsql/下(/usr有点类似于windows的programs file目录)。

 

进到PG的bin目录下,就可以初始化数据库,启动服务端,使用客户端等操作了。

cd /usr/local/pgsql/bin

./initdb -D /usr/local/pgsql/data(初始化数据库)

./postgres -D /usr/local/pgsql/data >logfile 2>&1 &(启动PostgreSQL的数据库服务)

./createdb test(创建test数据库)

./psql test(连接test数据库)

 

这里要注意一下,PG数据库服务不能以root用户运行 ,因此,最好新建一个用户,建议加一个名为postgres的用户来启动数据库服务。

sudo adduser postgres

 

简化执行

每次启动数据库服务都要进入PG的bin目录,再敲一堆命令什么的也不方便,不如直接将bin下的可执行程序加到用户环境变量当中。可通过下列方式实现。

 

打开用户的环境配置文件,是/home/username/下的.profile,通过vim命令打开(如果没装vim可以通过sudo apt-get install vim来安装)。在末尾处加上:

 

export PGDATA=/usr/local/pgsql/data

export PATH=$PATH:/usr/local/pgsql/bin

 

PGDATA是postgres –D后面指定的数据库文件存放目录,通过这样的设置,如果直接运行postgres或pg_ctl start那么数据库文件会默认存放在/usr/local/pgsql/data目录中的。

 

至此,PG的安装结束,用户在开启数据库服务的状态下,可以使用psql客户端来连接并访问数据库,通过SQL语言来操作。

 

分类:  PostgreSQL


6. 设置其它机器上对postgres的访问

修改/etc/postgresql/8.4/main/pg_hba.conf:

host all all 0.0.0.0/0 md5  #0.0.0.0为地址段,0为多少二进制位

例如:192.168.0.0/16代表192.168.0.1-192.168.255.254


修改/etc/postgresql/8.4/main/postgresql.conf

listen_address = '*'



POSTGRES 启动 以及远程调试 【转】

 POSTGRES如何支持远程调试:

------------

1. 配置postgresql.conf文件

listen_addresses = '*'  

2. 配置pg_hba.conf文件

host    all         all         0.0.0.0/0          trust

 

附,如何进行POSTGRES重启

pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path]
pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options]
pg_ctl reload [-s] [-D datadir]
pg_ctl status [-D datadir]
pg_ctl kill [signal_name] [process_id]

    描述

    pg_ctl 是一个用于启动,停止, 或者重起 PostgreSQL 后端服务器(postmaster), 或者显示一个运行着的服务器的状态的工具, 尽管我们可以手动启动服务器,但是 pg_ctl 封装了重新定向日志输出, 与终端和进程组合理分离,以及另外提供了一个选项用于有控制的关闭。

    在 start 模式里会启动一个新的服务器。 服务器是在后台启动的,标准输入被附着到了 /dev/null 上。如果使用了 -l,那么标准输出和标准错误被定向到一个日志文件, 要么就是重新定向到 pg_ctl 的标准输出(而不是标准错误)。 如果没有选定日志文件,pg_ctl 的标准输出应该重新定向到一个文件或者用管道输出类似 rotatelogs 这样的日志旋转程序,否则,postmaster 将把它的输出写到控制终端(在后台)并且将不会脱离 shell 的进程组。

    在 stop 模式下,那个正在特定数据目录运行的服务器被关闭。 你可以用 -m 选项选择三种不同的关闭模式:"Smart" 模式等待所有客户端中断联接。 这个是缺省。"Fast" 模式并不等待客户端中断联接。 所有活跃事务都被回卷并且客户端都强制断开。 "Immediate" 模式将在没有干净关闭的情况下退出。这么做将导致在重新启动的时候的恢复。

    restart 实际上是先执行一个停止,然后紧跟一个启动。它允许变换postmaster命令行的选项。

    reload 模式简单地给postmaster发送一个 SIGHUP 信号,导致它重新读取她的配置文件 (postgresql.conf,pg_hba.conf 等等) 这样就允许修改配置文件选项而不用完全重启系统来使之生效。

    status 模式监查一个服务器是否在指定的数据目录运行, 如果是,那么显示其 PID 和调用它的命令行选项。

    kill 模式允许你给一个指定的进程发送信号。 这个功能对 Microsoft Windows 特别有用,因为那里没有 kill 命令。 使用 --help 查看支持的信号的名字的列表。

   选项

-D datadir
声明该数据库文件的文件系统位置。 如果忽略这个选项,使用环境变量 PGDATA。

-l filename
把服务器日志输出附加在 filename 文件上。 如果该文件不存在,那么创建它。umask设置为 077, 因此缺省时是不允许从其它用户向日志文件访问的。

-m mode
声明关闭模式。mode 可以是smart, fast, 或者 immediate,或者是这三个之一的第一个字母。

-o options
声明要直接传递给postmaster 的选项。

参数通常都用单或者双引号包围以保证它们作为一个整体传递。

-p path
声明 postmaster 可执行文件的位置。 缺省时 postmaster 是从和pg_ctl相同的目录取出,如果不是, 那么就是写死的安装目录。除非你想干点什么特别的事情,并且得到类似没有找到 postmaster这样的错误, 否则没有必要使用这个选项。

-s
只打印错误,而不打印提示性信息。

-w
等待启动或者关闭的完成。在 60 秒后超时。 这个参数是关闭时的缺省值。 成功的关闭是以删除 PID 文件为标志的。对于启动而言, 一次成功的 psql -l 就标志着成功。 pg_ctl 将视图使用对 psql 合适的端口,如果存在环境变量 PGPORT,那么用它。 否则,它将查找看看在 postgresql.conf 文件里面是否设置了一个端口。 如果都没有,它将使用 PostgreSQL 编译时的缺省端口(缺省是 5432)。 在等待的时候,pg_ctl 将根据启动或者关闭的成功状况返回一个准确的退出代码。

-W
不等待启动或者停止的完成。这是启动和重起的缺省。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值