`
redsky008
  • 浏览: 351825 次
  • 性别: Icon_minigender_1
  • 来自: 成都正在项目
社区版块
存档分类
最新评论

ubuntu11.04下配置postgresql8.4完整过程,增加了网上流传的不清晰的地方

阅读更多
一、环境需求:
    Ubuntu10.04以上
    PostgreSQL8.4以上(貌似这样才能搭配Ubuntu10.04)   
    pgAdminIII
    windows下若需要pgAdminIII,也一定要与ubuntu服务端版本一致才行,
    否则肯能连数据表都看不见。


二、Ubuntu的配置
1. 修改root账户的密码以使root账户生效
plproxy@ubuntu:~$ sudo passwd root
[sudo] password for plproxy:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

2. 以root权限登录
plproxy@ubuntu:~$ su
Password:

三、安装postgresql-8.4.4-1-linux.bin
1. 安装postgresql-8.4.4-1-linux.bin遇到权限问题
root@ubuntu:/home/plproxy/Desktop# ./postgresql-8.4.4-1-linux.bin
bash: ./postgresql-8.4.4-1-linux.bin: Permission denied

2. 修改postgresql-8.4.4-1-linux.bin的只读权限
root@ubuntu:/home/plproxy/Desktop# sudo chmod 777 postgresql-8.4.4-1-linux.bin

3. 开始安装bin包
   root@ubuntu:/home/plproxy/Desktop#
    ./postgresql-8.4.4-1-linux.bin

4. 界面显示安装路径修改
   Installation Directory:
    /etc/postgresql/8.4

3. 下一步,安装数据路径修改(默认)
   Data Directory:
    /etc/postgresql/8.4/data

4. 下一步,输入PostgreSQL登录密码
   Password:
   ok123456

5. 下一步,修改端口
   Port:
   5432

6. 下一步,修改语言
   Locale:
   c

7. 下一步,在template1数据库中安装pl/pgsql
   x Install pl/pgsql in template1 database?

8. 下一步,安装Stack Builder
   x Stack Builder may be used to download and install additional tools,
drivers and applications to complement your PostgreSQL installation.



四、安装和配置PostgeSQL

1. 需要切换到root权限
2. 安装pgadmin3
   root@ubuntu:/home/plproxy# sudo apt-get install pgadmin3
   ...
   Do you want to continue [Y/n]? Y
   ...


3. 去掉data目录下所有文件的只读权限
   root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data -R


4. 编辑postgresql.config,完成后关闭
   root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/data/postgresql.config

   listen_addresses = 'localhost' => listen_addresses = '*'

5. 编辑pg_hba.conf,完成后关闭
   root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/data/pg_hba.conf
   列表中的METHOD可以是这些值:"trust", "reject", "md5", "password", "gss", "sspi", "krb5",
   "ident", "pam", "ldap" or "cert".

   # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

   # "local" is for Unix domain socket connections only
   local   all         all                               md5
   # IPv4 local connections:
   host    all         all         127.0.0.1/32          md5
   host    all         all         192.168.0.0/24        trust
   # IPv6 local connections:
   host    all         all         ::1/128               md5

  
6. 重启postgresql服务
   root@ubuntu:/home/plproxy# /etc/init.d/postgresql-8.4 restart

   启动遇到问题:
   waiting for server to start...............................................................could not start server
   PostgreSQL 8.4 did not start in a timely fashion, please see /etc/postgresql/8.4/data/pg_log/startup.log for details


7. 查看启动日志
   root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/pg_log/startup.log

   2011-06-10 08:45:53 GMT FATAL:  data directory "/etc/postgresql/8.4/data" has group or world access
   2011-06-10 08:45:53 GMT DETAIL:  Permissions should be u=rwx (0700).


6. 根据启动日志查看原来是将权限设置成了777而不是700
   root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data
   then step5


五、在pgAdminIII中配置信息
1. 打开pgAdminIII

2. 新建数据库:
   Name: MyCluster
   OID:
   Owner: postgres
   Encoding: SQL_ASCII
   Template: postgres
   Tablespace: <default tablespace>
   Schema restriction:
   Collation: C
   Character type: C
   Connection Limit: -1
   Comment:

   点击OK按钮,出现错误,原来是编码提示

   ERROR: new encoding(EUC_CN) is incompatible with the
   encoding of the template database(SQL_ASCII)
   HINT: Use the same encoding as in the template database,
   or use template0 as template.

   modify the Template template0:
   Template: template0

3. 代理结点是A计算机,安装plproxy
   proxy is the PC A.
   root@ubuntu:/home/plproxy# sudo apt-get install postgresql-8.4-plproxy
   Do you want to continue [Y/n]? Y

4. 安装plproxy语言到数据库JiwanCluster目录中PostgreSQL的数据表中的pg_language表。
   root@ubuntu:/home/plproxy# /etc/postgresql/8.4/bin/psql -U postgres -h 192.168.0.10 -f /usr/share/postgresql-8.4-plproxy/plproxy.sql JiwanCluster

   plproxy.sql脚本出现有问题:
   psql:/usr/share/postgresql-8.4-plproxy/plproxy.sql:4: ERROR:  could not access file "$libdir/plproxy": No such file or directory

   root@ubuntu:/home/plproxy# sudo gedit /usr/share/postgresql-8.4-plproxy/plproxy.sql

   修改脚本中的$libdir的路径为绝对路径,因为尝试过配置环境变量,貌似这个找不到。
   the name $libdir is the ".so" file exists.
   modify the $libdir as absolute path, as following:
   /usr/lib/postgresql/8.4/lib
  
   重新执行第4步.

   root@ubuntu:/home/plproxy# /etc/postgresql/8.4/bin/psql -U postgres -h 192.168.0.10 -f /usr/share/postgresql-8.4-plproxy/plproxy.sql JiwanCluster
   CREATE FUNCTION
   CREATE LANGUAGE
   CREATE FUNCTION
   CREATE FOREIGN DATA WRAPPER
  
   这样就创建了如下的两个函数:plproxy_call_handler和plproxy_fdw_validator
  

5. 创建plpgsql语言
   root@ubuntu:/home/plproxy# sudo -u postgres /etc/postgresql/8.4/bin/createlang plpgsql "JiwanCluster"
   Password:

6. 进入shell脚本,访问数据库JiwanCluster:
   root@ubuntu:/home/plproxy# sudo -u postgres /etc/postgresql/8.4/bin/psql -d "JiwanCluster"
   Password:
   psql (8.4.4)
   Type "help" for help.

   为数据库JiwanCluster创建模式
   JiwanCluster=# create schema plproxy;
   CREATE SCHEMA

7. 退出Shell
   JiwanCluster=# \q
could not save history to file "/etc/postgresql/8.4/.psql_history": Permission denied

8. 打开主结点proxy数据库JiwanCluster SQL编辑器,创建3个函数:
   --增加函数,执行语句:select dmlexec('insert into usertable values(0)')
   CREATE OR REPLACE FUNCTION dmlexec(query text)
      RETURNS SETOF integer AS
    $BODY$
    CLUSTER 'jiwan';
    RUN ON ANY;
    $BODY$
    LANGUAGE 'plproxy' VOLATILE
    COST 100
    ROWS 1000;

   --删除函数,select * from dqlexec('delete from usertable')
   CREATE OR REPLACE FUNCTION ddlexec(query text)
      RETURNS SETOF integer AS
   $BODY$
   CLUSTER 'jiwan';
   RUN ON ALL;
   $BODY$
      LANGUAGE 'plproxy' VOLATILE
      COST 100
      ROWS 1000;

   --查询函数,select * from dqlexec('select * from usertable order by id') as (id integer)
   CREATE OR REPLACE FUNCTION dqlexec(query text)
   RETURNS SETOF record AS
   $BODY$
   CLUSTER 'jiwan';
   RUN ON ALL;
   $BODY$
   LANGUAGE 'plproxy' VOLATILE
   COST 100
   ROWS 1000;

  
9. 注意:创建函数出现字符异常,可以在第一行随机敲注释,由pgAdminIII版本号不同造成的,尽量采用英文做注释

  
10. 出现pg_ctl提示错误
    pg_ctl: could not send stop signal (PID: 926): No such process
    是手动删除了这个文件,就会报下面的错误:
    pg_ctl: PID file "/etc/PostgreSQL/8.4/data/postmaster.pid" does not exist
    Is server running?
    如果存在这个文件,打开可以看到如下3行:
    --------------------------------------
    926
    /etc/PostgreSQL/8.4/data
      5432001         0
    --------------------------------------
    这三行的含义:
    第一行标识PID值,第二行标识这个postmaster.pid存储的位置,第三行什么意思?

    但讨论这个毫无意义,postmaster.pid里边出现的三行仅仅是记录而已。
    重启服务还报了个错误,需要查看/etc/PostSQL/8.4/data/pg_log/Startup.log
    打开一看,才知道又是这个错误
    2011-06-10 08:45:53 GMT FATAL:  data directory "/etc/postgresql/8.4/data" has group or world access
    2011-06-10 08:45:53 GMT DETAIL:  Permissions should be u=rwx (0700).
    修改data属性为700重启服务竟然就好了。
    root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data
   
11. 最重要的一点:节点数量必须是2的幂次方,即一个主结点+2的幂次方个次结点
    即服务器配置如下:
    服务器proxy->服务器A
            ->服务器B
    但不能是奇数副结点
    服务器proxy->服务器A
            ->服务器B
            ->服务器C   
分享到:
评论

相关推荐

    ubuntu11.04安装(图文)

    本文档详细介绍了 Ubuntu 11.04 的安装过程,包括自动分区和手动分区两种方式。通过本文档,用户可以轻松地安装 Ubuntu 11.04 操作系统。 一、安装前的准备 在安装 Ubuntu 11.04 之前,需要准备一个可启动的光盘。...

    ubuntu 11.04下Qt开发环境的安装

    ### Ubuntu 11.04下Qt开发环境的安装指南 #### 一、引言 在Linux环境下搭建Qt开发环境对于初学者来说可能会遇到不少挑战。本文将详细介绍如何在Ubuntu 11.04上安装Qt开发环境,并分享一些实用的经验技巧。本教程...

    Ubuntu 11.04安装指南

    ### Ubuntu 11.04 安装指南详解 #### 一、Linux基础知识与挂载点概念 在深入了解Ubuntu 11.04的安装之前,我们先来了解一下Linux的基础知识,尤其是关于挂载点的概念。 Linux作为一种强大的开源操作系统,其核心...

    Ubuntu11.04 下载.txt

    Ubuntu11.04 下载

    Ubuntu 11.04 安装手册

    Ubuntu 11.04 安装手册是一份详细的指南,旨在帮助用户了解如何在计算机上安装并配置Ubuntu 11.04,一款面向桌面计算机、笔记本和服务器的Linux操作系统。Ubuntu 11.04代号为"Natty Narwhal",于2011年4月发布,是...

    ubuntu11.04制作离线镜像源

    ubuntu11.04离线镜像源制作方法 本文档将详细介绍如何制作ubuntu11.04离线镜像源,主要面向没有网络连接的情况,旨在帮助用户在安装完成ubuntu11.04后能够进行更新。 镜像源的重要性 在安装ubuntu11.04时,镜像源...

    ubuntu11.04下配置PHP环境

    为新手提供可靠 思路清晰 易懂的LAMP(LINUX APACHE MYSQL PHP)环境配置教程。

    CSI Tool 集成安装包(适配Ubuntu11.04)

    CSI Tool 集成安装包(适配Ubuntu 11.04系统,Intel 5300 无线网卡) csitools

    最快最全的Ubuntu11.04源,速度超快

    最快最全的Ubuntu11.04源,速度超快

    Ubuntu11.04下安装ns-allinone-2.34

    ### Ubuntu 11.04 下安装 ns-allinone-2.34 的详细步骤及注意事项 #### 一、Ubuntu 11.04 的安装 1. **下载 Ubuntu 11.04** - 访问官方网站 [www.ubuntu.org.cn](http://www.ubuntu.org.cn/) 下载 Ubuntu 11.04。...

    硬盘全新安装ubuntu11.04

    ### 硬盘全新安装Ubuntu 11.04详细指南 #### 一、概述 随着Linux系统的普及和发展,越来越多的用户开始尝试将其作为主要操作系统使用。Ubuntu作为一款基于Debian的发行版,以其易用性和社区支持而受到广泛欢迎。...

    ubuntu11.04上编译omap3530内核存在问题解决方法

    ### Ubuntu 11.04 上 OMAP3530 内核编译问题及解决方案 #### 背景概述 本文旨在提供一个详尽的指南,帮助开发者在 Ubuntu 11.04 系统环境下成功编译 OMAP3530 处理器的 Linux 内核。本案例中使用的硬件平台为天漠...

    UBUNTU11.04服务器版安装和简单配置.docx

    本文档总结了UBUNTU 11.04服务器版的安装和简单配置过程。安装前需要分好磁盘分区,包括交换空间的分区,建议使用Ubuntu桌面版光盘中分区工具。安装步骤包括选择简体中文、配置网络、设置主机名、时钟设置、磁盘分区...

    Ubuntu 11.04 下 Vbox 虚拟机安装Windows 8全教程.doc

    Ubuntu 11.04 下 Vbox 虚拟机安装Windows 8全教程.doc

    Ubuntu11.04 wubi安装容量限制

    Ubuntu 11.04 是 Ubuntu 操作系统的一个版本,发布于2011年,而Wubi是Ubuntu提供的一种简便的安装方式,尤其适合那些希望在不重新分区硬盘的情况下体验Linux的Windows用户。Wubi允许用户将Ubuntu安装为一个Windows内...

    Ubuntu11.04在有一键GHOST的Windows XP系统上的安装

    ### Ubuntu 11.04 在含一键 GHOST 的 Windows XP 系统上安装详解 #### 背景介绍 本文旨在详细介绍如何在已安装一键 GHOST 的 Windows XP 操作系统上安全地安装 Ubuntu 11.04,且不会影响原有的 Windows XP 系统。...

    将Ubuntu 11.04 化身为Mac

    标题《将Ubuntu 11.04 化身为Mac》和描述中所蕴含的知识点主要涉及Ubuntu操作系统及其定制化,特别是如何将Ubuntu桌面环境改造成类似苹果Mac OS的界面风格。文中提及了Elementary、Docky和Gloobus-Preview这三个工具...

    UBUNTU11.04服务器版安装和简单配置.pdf

    【Ubuntu 11.04 服务器版安装和配置详解】 Ubuntu 11.04 是 Ubuntu Linux 的一个老版本,特别针对服务器环境设计。在安装前,需要预先规划磁盘分区,通常需要一个交换空间分区,大小约为2GB,以提供虚拟内存功能。...

Global site tag (gtag.js) - Google Analytics