数据库

 首页 > 数据库 > postgresql > CentOS5中的postgresql安装

CentOS5中的postgresql安装

分享到:
【字体:

注意:系统的时间需要调至到当前时间,否则在make的时候会出现死循环

在安装CentOS后,没有gcc文件,需要先安装。
将光光盘中的gcc开头的文件拷到root下,然后 rpm -ivh *.rpm
如果rpm -ivh *.rpm不管用,请操作下面的步骤
CentOS5.2系统安装在虚拟机上,编译gcc.
挂载CentOS的DVD系统光盘,然后进入CentOS目录内,安装顺序如下:
rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm
rpm -ivh glibc-headers-2.5-24.i386.rpm
rpm -ivh glibc-devel-2.5-24.i386.rpm
rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
rpm -ivh gcc-4.1.2-42.el5.i386.rpm
rpm -ivh zlib-devel-1.2.3-3.i386.rpm

注意:必须先安装: kernel-headers-2.6.18-92.el5.i386.rpm 这个包,否则报错.
-------------------------------------------------------------------------------------
其中会提示少很多文件的错误,相关的文件全部在光盘里,找到后,再拷贝进去,再执行一样的命令,知道全部OK通过。同时make的时候,会提示缺少readline。。。。的错误,一样将光盘里的readline---的文件拷贝进来,然后安装。 这样make,install就可以使用了。

1、下载postgresql最新版:http://www.postgresql.org/ftp/source/
2、解压文件:
tar zxvf postgresql-8.3.7.tar.gz
cd postgresql-8.3.7
1 添加用户 创建目录
  useradd postgres -d /usr/local/pgsql
  passwd postgres
  mkdir /usr/local/pgsql/
  mkdir /usr/local/pgsql/data
  chown -R postgres /usr/local/pgsql
  chown postgres /usr/local/pgsql/data
 
2 设置环境变量
  vi /etc/profile
  export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
  export PATH=/usr/local/pgsql/bin:$PATH
  export PGDATA=/usr/local/pgsql/data
  export MANPATH=$MANPATH:/usr/local/pgsql/man
3 安装
   ./configure --prefix=/usr/local/pgsql ;make;make install
4 初始化数据库
  su postgres
  /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 9、配置监听地址和端口:
vi /usr/local/pgsql/data/postgresql.conf
取消以下两行的注释
   listen_addresses = '*'
   port = 5432
启动数据库
   /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
然后再重新启动一个linux的窗口。在这个新窗口里进行如下操作。
任何目录下(需要用postgres用户登录)
createdb edm(创建数据库)
psql edm(进入数据库操作)
。。。。。。

10、允许远程连接:
vi /usr/local/pgsql/data/pg_hba.conf
添加
   host all all 192.168.1.0/24 trust 
   每项的具体意思在配置文件中有详细说明
配置iptables让远程主机能访问:
   vi /etc/sysconfig
   添加
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
   service iptables restart
11、让postgresql数据库随系统启动而启动:
将启动脚本拷贝到/etc/init.d/目录下,具体执行如下命令:
cd /etc/rc.d/init.d
cp (第一步解压的安装文件目录)/postgresql-8.3.7/contrib/start-scripts/linux postgresql
chmod +x postgresql
vi postgresql
   prefix=/usr/local/pgsql
   PGDATA="/usr/local/pgsql/data"
   PGUSER=postgres
   PGLOG="/var/log/pgsql.log"
   chkconfig --add postgresql
启动数据库:
   service postgresql start  ????

12,创建数据库其它用户
要在postgres下登录
创建超级用户;
xiaop@localhost~$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser 删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名 参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
3.2.1 删除本地的Postgres用户;
xiaop@localhost~$ dropuser testuser
13,创建一个属于其它用于的数据库
createdb lotus -O trancecore
不会的时候,记得看看--help
默认的情况下 postgres没有启动,所以只要使用,就要先启动哦

配置完毕 。
1、安装和启动
#rpm -qa | grep postgresql
其中可执行文件放在/usr/bin目录中,文档则放在/usr/share/doc/postgresql目录中,自动创建postgres帐号(管理帐号),其home目录为/var/lib/qpsql
2、设置postgresql
#passwd postgres     设置postgres密码
#cp .bashrc /var/lib/pqsql
#cp .bash_profile /var/lib/pgsql
#chown -R postgres:gostgres /var/lib/pgsql  设置文件属性
#su -postgres
$vi /var/lib/pgsql/.bash_profile   设置postgres数据库管理员环境变量
其中更改
USERNAME='postgres'   将root更改为postgres
PGLIB=/usr/lib/pgsql      设置环境变量PGLIB
PGDATA=/var/lib/pgsql    数据库文件的存放位置
$Export USERNAME ENV PATH PGLIB PGDATA    导出环境变量
$source ~/.Bash_profile 使环境立即生效
$initdb
系统会生成一个名为template1的数据库,包含了存储整个数据库信息的系统表,生成其他数据库时的模板。
$postmaster &
$psql template1  测试数据库连接
template1=#       表明数据库连接正常
template1=# CREATE DATABASE ds; 建立测试数据库ds
CREATE DATABASE
template1=# c ds    连接测试数据库ds
You are now connected to database "ds".
ds=# CREATE TABLE bar(i int4,c char(16));  在ds数据库中建立测试表
CREATE TABLE
ds=# q    退出
3、数据库状态管理
#/etc/rc.d/init.d/postgresql stop  停止
#/etc/rc.d/init.d/postgresql restart   重新启动
4、用户管理
$createuser
-d 允许新增的用户创建数据库  -D禁止新增的用户创建数据库    -h host 指定主机名    -I userid 设置用户编号,可以直接设置成系统用户的UID  -p port 指定连接的网络端口号 
-a 允许新增的用户创建用户   -A 禁止新增的用户创建用户 username 指定用户名称
$createuser -i 500 -d -A aaa 将该用户的帐号设置为aaa,编号为500,可以新建数据库(-d),但不能新增用户(-A)
交互式创建用户
$createuser 直接输入命令createuser根据提示创建用户
$dropuser
-h 与-p的含义与createuser中的相同,参数-I表示删除前要求确认
$ dropuser aaa 删除用户aaa
5、数据库的管理与维护
createdb命令可以用来新增数据库,只有创建它的用户与数据库管理员(postgres)才有权将其删除
$createdb ds    创建数据库ds
$psql -l   显示系统中有几个数据库
$dropdb ds    删除数据库
PostgreSq充许将数据库保存保存在不同的目录内,使用initlocation命令可以创建新的数据库目录,但必须确保postgres帐号具有访问访目录的权限
$export PGDATA2=/var/lib/pgsql/db2
$initlocation $PGDATA2
注意:设置完后请重启postmaster,createdb后面参数-D所使用的环境变量不必加"$"符号
6、PostgreSQL数据库的安全性控制
1)、数据库文件保护,所有在数据库里存储的文件都受到保护,除了postgres超级用户外其他用户不能读取
2)、默认客户端只能通过本地的一个Linux Socket连接到数据库服务器,而不是通过TCP/IP Socket,而且后端必须带-I选项启动才能让本地客户端连接上来
3)、可以通过在PG_DATA里的pg_hba.conf文件来限制可连接的客户端IP地址或用户名。
4)、客户端连接可以通过被外部软件包来认证
5)、Postgres里的每个用户都被赋予一个用户名和(可选 )口令,默认情况下,用户对不是自己创建的数据库没有写权限
6)、用户可以隶属于组,而且表的访问权限以组权限为基本设置
1、用户认证
认证是后端服务器和postmaster验证请求访问数据的用户的过程,所有激活postgres的用户都应对照pg_user表的内容进行检查以确认他们的权限,对用户身份的核对可以通过多种方式进行
一、从用户Shell登陆的用户
从用户shell启动的后端数据库服务器通过setuid调用把用户标识转为用户postgres之前要检查用户标识,不需要进行其它的认证。
二、从网络登陆的用户
用于Linux和TCP/IP SOCKET的认证方法
方法                                             功能
trust                                     无条件连接
reject                                    无条件拒绝连接
crypt                                     客户端向用户请求一个口令,该口令被加密后(使用crypt(3)发送,国情 pg_shadow表口令进行比较)
password                            
分享到:
如何使用Plproxy设计分布式PostgreSQL数...
PostgreSQL的分布式数据库方案很多,如GridSQL,pgpool-ii,plproxy等。 其中plproxy是skype开发的一个数据库组件. 使用plproxy设计跨互联网部署还要考虑带宽的问题和应用是否要做本地缓存等问题, plproxy源代码对代理库的个数做了限制必须是2的次方,如果要打破这个限制需要修改源代码. 以下是一个测试方案: ...
CentOS系统中安装postgresql数据库
(1) 从http://yum.pgrpms.org/repopackages.php 下载postgresql9.1 rpm安装包   [root@server1 ~]# wget http://yum.pgrpms.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm (2)安装pgdg-centos91-9.1-4.noarch.rpm   [root@server1 ~]# rpm -i pgdg-centos91-9.1-4.noarch.rpm  (3)更改CentOS-Base.repo...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……