Centos安装postgresql
下载安装文件
postgresql-8.2.6.tar.gz
下载后将文件拷贝到你的工作目录下(例:/opt),然后运行如下命令:
cd /opt
tar -zvxf postgresql-8.2.6.tar.gz
建立安装目标文件夹
mkdir /var/lib/pgsql
指定安装路径:
./configure –prefix=/var/lib/pgsql –without-readline –without-zlib
这一步如果报错,请查看install.log,请确认安装所需的库包都安装好了,有可能gcc没有
CentOS 下安装gcc–RPM
yum install gcc(需要的组件,即你也可以下载以下的RPM包进行独立安装):
glibc-kenheaders
glibc-headers
glibc-devel
cpp
gcc
yum install gcc-c++(需要的组件,即你也可以下载以下的RPM包进行独立安装)
gcc-c++
libstdc++-devel
yum install gcc-g77(需要的组件,即你也可以下载以下的RPM包进行独立安装):
yum install flex autoconf zlib curl zlib-devel curl-devel bzip2 bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel
这样gcc就装好了,可再次运行./configure –prefix=/var/lib/pgsql –without-readline –without-zlib
编译、安装:
gmake
gmake install
在系统中为DB创建一个Postgresql用户:
adduser postgresql
创建Postgresql数据库文件夹:
mkdir /var/lib/pgsql/data
修改Postgresql数据库文件夹权限:
chown postgresql /app/pgsql/data
转到postgressql用户:
su postgresql
转到安装目录 /var/lib/pgsql:
cd /app/pgsql
初始化数据库:
/var/lib/pgsql/bin/initdb -D /var/lib/pgsql/data
启动数据库:
/var/lib/pgsql/bin/pg_ctl \-D /var/lib/pgsql/data \-l /var/lib/pgsql/data/logfile start
配置Postgresql
在/app/pgsql/data/目录下修改 pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.0/24 md5
host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 md5
修改postgresql.conf 内容如下
listen_addresses = ‘*’ # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to ‘localhost’, ‘*’ = all
# (change requires restart)
port = 5432 # (change requires restart)
说明:关于PostgreSql远程连接配置
# TYPE DATABASE USER CIDR-ADDRESS METHOD
说明每一行有五个字段,
分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。
下面,我只介绍一些针对每个字段常用的选项。
字段一:TYPE。
可以选择:local或host。
前者只能允许本地的用户登陆Postgres数据库;后者可以接受远程客户登陆。所以,
我们应该使用“host”。
字段二:DATWABSE。
连接用户可以使用的数据库名字。可以使Postgres的一个具体的
数据库名,也可以使用“all”来允许用户访问所有数据库。
字段三:USER。可以指定某个具体的用户来连接Postgres数据库(还要结合后面的地址字段),
也可以使用“all”来允许所有用户连接数据库。
字段四:DIDR-ADDRESS。
这可能会让您不知所措,不知道它为何物。
其实,它就是IP地址与掩码的另一种表示方法而已。
Postgres是通过这个字段来了解,允许那些IP或IP网段连接此服务器。
它的格式是: IP地址/掩码。
这个掩码和子网掩码是一个道理,只不过是用一个小于等于32的正数来表示,
表示的正是子网掩码中高几位为1,
比如,255.255.255.0 就是“24”,说明高24位是1。
192.168.0.1/32 相当于 IP为192.168.0.1,子网掩码为255.255.255.255的网段,
很显然,这只表明192.168.0.1IP自己。
如果您对IP地址与子网掩码不太了解,请查看相关资料。
字段五:METHOD。
这是验证方法。可选的有:
reject:拒绝这个IP的用户访问;
md5:密码以md5作为hash编码;
password:密码作为明文传输(好恐怖!);
krb5:密码以krb5作为hash编码。
下面举一个例子,来说明如何进行设置:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
#允许IP为192.168.0.1的所有用户登陆到Postgres服务器的所有数据库,采用md5验证。
host all all 192.168.0.1/32 md5
#允许用户testuser在192.168.0.XX的网段任意机器登陆Postgres服务器,
#只能使用数据库testdb,采用md5验证。
host testdb testuser 192.168.0.1/24 md5
2. 改监听地址
默认下,POSTGRESQL只接受本地服务,要接受远程服务,需改postgresql.conf 文件listen_address = *
3. 如果是在Linux上的PostgreSQL
要打开 “unix的tcpip套接子”。
编辑 $POSTGRES/data/postgresql.conf 文件,
将tcpip_socket=off改成tcpip_socket=on即可。
说明结束。
下面继续配置DB
创建用户
/var/lib/pgsql/bin/createuser -s -P corem
password prompt> corem
/var/lib/pgsql/bin/createdb -O corem CM
设置PostgreSQL的数据库实例,执行下面的命令启动PostgreSQL控制台,使用SQL语句来设置用户访问权限。
连接到PostgreSQL
su – postgresql
/var/lib/pgsql/bin/psql CM
执行如下SQL设置访问权限:
create schema corem authorization corem;
revoke all on schema PUBLIC from corem;
revoke all on schema PUBLIC from public;
grant all on schema corem to corem;
grant create on schema corem to public;
/var/lib/pgsql/bin/pg_ctl \-D /var/lib/pgsql/data \-l /var/lib/pgsql/data/logfile restart
配置成功的话,可以在windows中,用PGAdmin进行连接
端口:5432
数据库:CM
用户/密码 corem/corem
