文档章节

Ubuntu 安装 postgresql

威武不能笑
 威武不能笑
发布于 2014/04/29 11:41
字数 2044
阅读 5138
收藏 6

每天晚上疲劳的睡在床上时,才感觉真真切切地过了一天。人生最重要的不仅是努力,还有方向。压力不是有人比你努力,而是比你牛叉几倍的人依然比你努力。即使看不到未来,即使看不到希望,也依然相信,自己错不了,自己选的人生错不了。第二天叫醒我的不是闹钟,其实,还是梦想!!

2013-07-14 20:08:58

1.             准备条件

1)         装了GCC的ubuntu操作系统 (我安装在了虚拟机上)

2)         下载好的postgreSQL 9.19源码或二进制包(二进制包也可以在ubuntu上直接获取)

2.             postgreSQL安装

postgreSQL安装分为源码安装和二进制安装,各有各的好处,源码安装可以自己制定一些参数和设置(详细参考官方文档);二进制安装可以不需要怎么配置就可以直接使用了,简单、方便。但做正规项目部署的话,还是建议使用源码安装,可以针对项目进行灵活的配置。

另问题:我安装上ubuntu后,系统当中并没有GCC,我是直接上网apt-get install的;看安装包(ubuntu-12.04.2-server-amd64)中有GCC的目录,但安装时老是提示缺少依赖,找依赖要找一大堆,麻烦,有知道怎么使用系统安装包装GCC的同学,请共享下经验呗。

2.1      二进制包安装

1)         在线获取postgreSQL9.1,命令如下:apt-get install postgresql-9.1;不要选错了。之后选择“Y”即可自动安装。

安装完成后postgreSQL已经自动启动,如下:

 

2)         安装完成后只需关注刚初始化的数据库管理文件和数据文件的存放位置。

数据文件:/var/lib/postgresql/9.1/main/

数据库配置文件:/etc/postgresql/9.1/main

管理文件和lib库文件:/usr/lib/postgresql/9.1/,里面包括bin和lib目录

3)         安装完成后,postgreSQL会创建一个针对数据库操作的postgres操作系统用户,通过root的su passwd postgres 可以更改系统postgres用户的密码。我们切换到postgres用户下面,并执行psql命令(可以直接使用psql命令,是因为二进制包的配置在安装时已经将$PATH环境变量写好了),可以看到已经进入到数据中。

 

4)         此时,postgresql数据库已经可以在本机访问了,但要通过客户端(比如windows上装的pgAdmin3,或pgpool-II等第三方组件等),还需要配置两个文件:pg_hba.conf(连接数据库的身份验证方式)、postgresql.conf(数据的配置文件),这些文件都在 数据库配置文件:/etc/postgresql/9.1/main 目录中。其中的配置在下面会讲到。

 

2.2  源码安装

1)         将下载好的源码包(postgresql-9.1.9.tar.gz)上传并进入到/usr/local/src目录下面。如何做linux和windows之间的共享,网上有一大批文章可以参阅,在这里不再做讲解。我使用的是简单的samba共享

2)         解压缩源码包:tar –zvxf postgresql-9.1.9.tar.gz

 

3)         进入刚解压缩出的postgresql-9.1.9目录:cd postgresql-9.1.9/  可以看到如下文件:

 

4)         此时,我们需要编译postgresql,--prefix 参数用于指定安装目录,我们先在/usr/local/下创建postgresql目录,命令如下:mkdir /usr/local/postgresql(图就不贴了);其中还有很多参数,请大家参考官方文档。

在安装过程中会出现缺少两个组件的依赖,readline和zlib;readline作用是用psql进入数据库后对操作的记忆,即退出psql后再进入,使用“↑”或“↓”时显示之前打出的命令,跟dos操作差不多。Zlib的作用是后期对日志的压缩。当然,在编译的时候也可以使用--without-readline --without-zlib来忽略这两个错误,但我们现在还是安装上吧。从网上直接获取,apt-get install libreadline6-dev zlib1g-dev

编译postgresql:./configure --prefix=/usr/local/postgresql

                               make world或make(world指全部编译,也可以不用加)

                               make install-world或make install

 

5)         编译安装完成后在/usr/local/postgresql目录下会出现postgresql的一些管理文件、头文件、库文件等目录。如下图:

 

此时,只是安装了postgresql数据库的软件而已,还没有初始化数据库。先在/usr/local/postgresql目录下面创建一个data目录(当然也可以存放于其他地方),用于存放初始化的数据库的文件。

 

         现在我们需要一个操作系统级别的管理数据库的组(定义为postgres)和用户(定义为postgres)并修改postgres密码为123,操作命令:

groupadd postgres

useradd –g postgres postgres

passwd postgres

 

         对新创建postgres用户赋予data目录的自由操作权限。命令:chown –R postgres /usr/local/postgresql/data

 

         一切准备就绪,我们切换到postgres用户,并进入到bin目录,使用initdb命令初始化第一个数据库。Initdb中我们需要--encoding参数为utf8,设置数据库编码为utf8,我们将数据库初始化到/usr/local/postgresql/data目录中。其完整命令为:initdb --encoding=utf8 –D /usr/local/postgresql/data

 

至此数据创建完毕,可以看到启动数据库命令的提示,有两种方法启动:(1)./postgres –D ../data (2)./pg_ctl –D  ../data –l logfile start,相对路劲为/usr/local/postgresql/bin;

如果想在同一台机器中部署两个数据库实例,则可以再使用initdb命令将数据库初始化到另一个目录中,此目录要更改为postgres用户拥有权限,初始化完成后更改端口即可。

 

2.3  postgreSQL安装完成后的配置

2.3.1外部远程访问postgreSQL

postgreSQL数据库初始化安装完毕后,默认只能在本机访问,而其他电脑无法访问本机的postgreSQL。如果需要外部访问postgreSQL,则需要修改几个文件,postgresql.conf、pg_hba.conf;

找到对应的数据目录,如果按本文安装,使用二进制包安装的,数据库配置目录为:/etc/postgresql/9.1/main;如果是按源码安装的,数据库目录为:/usr/local/postgresql/data;打开后目录中可以看到有postgresql.conf、pg_hba.conf文件。

1)         修改postgresql.conf文件:

此文件为数据库的配置文件,包括postgreSQL的连接数量配置、共享内存的配置、日志配置、数据库复制配置等管理用的配置文件。以后配置集群等需要修改此文件。

找到#- Connection Settings - 节下的

#listen_addresses=’localhost’ 改为listen_addresses=’*’ (’#’号注释不要,localhost改为’*’,接受为任何连接)

#port=5432改为port=5432(’#’号注释不要)

2)         修改pg_hba.conf文件:

此文件为数据库的连接配置文件,用来限制或允许什么样的地址以什么样的访问方式可以访问postgreSQL。详细的内容不再多讲,此文件头部有注释,相信大家都可以看的懂。

在此文件中增加如下行:

host    all             all             0.0.0.0/0               md5

解释下含义:

文件格式为:host  DATABASE  USER  ADDRESS  METHOD  [OPTIONS]

Host:主机访问类型,local为Unix-domain socket连接访问方式,host为TCP/IP socket或SSL-encrypted TCP/IP socket连接访问方式。

第一个all:要访问的数据库,all则为全部。

第二个all:以那个用户访问数据库,all则为全部

0.0.0.0/0:允许所有IP访问

md5:以md5的连接访问postgreSQL,如果是trust,则连接postgreSQL不需要密码。但为安全起见,我们使用md5。

至此,两个文件都已经更改完毕,重新启动postgreSQL即可。切换postgres用户,输入重启数据库命令:./pg_ctl –D ../data restart

但此时使用pgadmin-III连接postgreSQL时会出现以下错误FATAL:  password authentication failed for user "postgres",

 

原因为初始化数据库后,系统会自动添加一个无密码的postgres用户,而且使用本机访问数据库时是trust方式的(详见pg_hba.conf文件),因此在本机访问数据库可以不需要密码,但非本机的连接则需要密码,所以我们需要在数据库中增加postgres用户的密码。

 


本文转载自:http://www.cnblogs.com/arvinlv/p/3189824.html

威武不能笑
粉丝 2
博文 62
码字总数 12743
作品 0
黄浦
程序员
私信 提问
如何在 Ubuntu 上安装和配置 PostgreSQL

本教程中,你将学习如何在 Ubuntu Linux 上安装和使用开源数据库 PostgreSQL。 PostgreSQL (又名 Postgres) 是一个功能强大的自由开源的关系型数据库管理系统 (RDBMS) ,其在可靠性、稳定性、...

作者: Sergiu
10/20
0
0
windows下用pgadmin连接ubuntu内的postgreSQL服务器[转]

昨天晚上为了做点东西要在虚拟机里的ubuntu下安装postgres,为了操作方便所以在windows下安装了pgadmin3,但是连接的时候一直连接不上,仔细检查各个配置都没有问题,最后终于找到问题的所在...

乌鸦FB
2014/01/02
1K
0
在Ubuntu 12.04中使用最新的Eclipse版本调试跟踪最新的PostgreSQL源代码

1 写在最前 大概三周前就已经想把这篇文章发出来了,但是苦于各种杂事,今天终于有空来整理一下了。进入正题前,我想说的是,目前网上的很多关于PostgreSQL(以下简称PG)源代码分析环境搭建...

鄂世嘉
2013/12/29
426
2
Ubuntu 安装Postgresql-9.1

首先你可以到ubuntu的软件中心去下载postgresql 或者在命令行输入命令获取 apt-get install postgresql-9.1 在安装之后有的需要提示你输入密码 也就是psotgre的管理密码 如果没有 你就要在安...

洲宝
2013/04/18
349
1
记一次在 Linux 上创建 Django 应用的过程

0 环境与目标 0.1 环境 服务器端 操作系统: Ubuntu 14.04.2 LTS 运行时: Python 3.4.0 客户机端 浏览器: Firefox 37.0.1 数据库客户端: Navicat Premium 11.1.10 0.2 目标 在服务器端开始...

辛木
2015/04/06
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

一次看懂 Https 证书认证

TLS > 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图,TLS...

极客收藏夹
17分钟前
3
0
https证书买哪家好?有哪些供应商

在选购https证书前除了要了解类型外,还需要了解https证书供应商,毕竟不同的供应商,提供的产品质量与服务也是有差异的。今天小编就为大家讲讲https证书供应商方面的内容,希望各位会喜欢。...

安信证书
18分钟前
4
0
Zuul 配置

概述:zuul底层是基于servlet,是由一系列的filter链构成。 1、路由配置 a、单例serverId映射 zuul: routes: client-a: path: /client/** serviceId: client-a 意思是...

java框架开发者
36分钟前
3
0
zk中FinalRequestProcessor解析

是处理器最后一个环节 FinalRequestProcessor implements RequestProcessor 处理器链最后一个环节处理事务和非事务请求最后一个环节 构造器 public FinalRequestProcessor(ZooKeeperServer z...

writeademo
36分钟前
3
0
Axios 详解

首先祝广大程序猿们节日快乐! 一、axios简介 基于promise,用于浏览器和node.js的http客户端 二、特点 支持浏览器和 node.js 支持 promise 能拦截请求和响应 能转换请求和响应数据 能取消请求...

张兴华ZHero
37分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部