PostgreSQL修炼之道:从小工到专家. 2.1 从发行版本安装

2.1 从发行版本安装

2.1.1 在Debian或Ubuntu下的安装

在Debian和Ubuntu下一般使用apt-get命令或aptitude命令来安装软件,命令如下:

sudo apt-get install postgresql

安装完毕后,PostgreSQL数据库就启动了,如果想进入数据库,需要切换到postgres用户下:

su - postgres

然后使用psql连接到数据库中,从操作系统下的“postgres”用户(注意这里指的不是数据库中的postgres用户)连接数据库是不需要密码的,如下:

root@osdba-laptop:~# sudo su - postgres

postgres@osdba-laptop:~$ psql

psql (9.1.9)

Type "help" for help.

 

postgres=# \l

                                 List of
databases

  
Name    |  Owner  
| Encoding |  Collate   |  
Ctype    |   Access

privileges  

-----------+----------+----------+------------+------------+--------------------

 postgres 
| postgres | UTF8     | en_US.utf8
| en_US.utf8 |

 template0 
| postgres | UTF8     | en_US.utf8
| en_US.utf8 | =c/postgres

+

          
|          |          |            |            |

postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
=c/postgres        

+

          
|          |          |            |            |

postgres=CTc/postgres

(3 rows)

 

postgres=# \q

在上面的示例中,使用psql命令连接PostgreSQL数据库,psql是PostgreSQL中的客户端工具。“\l”是列出所有数据库的命令,“\q”是退出psql的命令,在后面的章节中还会详细介绍psql的使用方法。

在Debian或Ubuntu下,使用apt-get安装完成的PostgreSQL数据库的数据目录在/var/lib/postgresql/<dbversion>/main目录下:

postgres@osdba-laptop:~$ cd
/var/lib/postgresql/9.1/main

postgres@osdba-laptop:~/9.1/main$ ls -l

total 56

drwx------ 5 postgres postgres 4096 Jun 29
11:55 base

drwx------ 2 postgres postgres 4096 Jun 29
11:55 global

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_clog

drwx------ 4 postgres postgres 4096 Jun 29
11:55 pg_multixact

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_notify

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_serial

drwx------ 2 postgres postgres 4096 Jun 29
12:00 pg_stat_tmp

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_subtrans

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_tblspc

drwx------ 2 postgres postgres 4096 Jun 29
11:55 pg_twophase

-rw------- 1 postgres postgres    4 Jun 29 11:55 PG_VERSION

drwx------ 3 postgres postgres 4096 Jun 29
11:55 pg_xlog

-rw------- 1 postgres postgres  133 Jun 29 11:55 postmaster.opts

-rw------- 1 postgres postgres  100 Jun 29 11:55 postmaster.pid

lrwxrwxrwx 1 root     root     
36 Jun 29 11:55 server.crt ->

/etc/ssl/certs/ssl-cert-snakeoil.pem

lrwxrwxrwx 1 root     root    
38 Jun 29 11:55 server.key ->

/etc/ssl/private/ssl- cert-snakeoil.key

安装完成后,可以使用Linux下的服务管理命令service来启停数据库:

osdba@osdba-laptop:~$ sudo service
postgresql status

9.1/main (port 5432): online

osdba@osdba-laptop:~$ sudo service
postgresql stop

 *
Stopping PostgreSQL 9.1 database server

[ OK ]

osdba@osdba-laptop:~$ sudo service
postgresql start

 *
Starting PostgreSQL 9.1 database server

[ OK ]

osdba@osdba-laptop:~$

2.1.2在Redhat、CentOS或Fedora下的安装

在Redhat、CentOS或Fedora下可使用yum工具来安装PostgreSQL,但这些系统的软件库中自带的PostgreSQL版本较低,其版本情况见表2-1。

表2-1Linux发行版本自带的PostgreSQL版本

Linux发行版本        自带的PostgreSQL版本

RHEL/CentOS/SL 5   8.1 (also supplies package postgresql84)

RHEL/CentOS/SL 6   8.4

Fedora 16、Fedora 17     9.1

Fedora 18         9.2

 

如果上面的PostgreSQL版本能满足你的需要,可按下面的步骤进行安装,否则就参照2.3.1节中的内容进行安装。

安装命令如下:

yum install postgresql-server.x86_64

具体安装过程如下:

[root@localhost ~]# yum install
postgresql-server.x86_64

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 *
base: mirrors.163.com

 *
extras: mirrors.163.com

 *
updates: mirrors.163.com

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package postgresql-server.x86_64
0:8.4.13-1.el6_3 will be installed

--> Processing Dependency:
postgresql-libs(x86-64) = 8.4.13-1.el6_3 for package:
postgresql-server-8.4.13-1.el6_3.x86_64

--> Processing Dependency:
postgresql(x86-64) = 8.4.13-1.el6_3 for package:
postgresql-server-8.4.13-1.el6_3.x86_64

--> Processing Dependency:
libpq.so.5()(64bit) for package: postgresql-server-8.4.13-1.el6_3.x86_64

--> Running transaction check

---> Package postgresql.x86_64
0:8.4.13-1.el6_3 will be installed

---> Package postgresql-libs.x86_64
0:8.4.13-1.el6_3 will be installed

--> Finished Dependency Resolution

 

Dependencies Resolved

 

================================================================================

 Package                                  Arch     

Version                               Repository                    Size

================================================================================

Installing:

 postgresql-server                        x86_64    

8.4.13-1.el6_3                         base                        3.4 M

Installing for dependencies:

 postgresql                             x86_64                       

8.4.13-1.el6_3                         base                        2.8 M

 postgresql-libs                          x86_64              

8.4.13-1.el6_3                         base                        200 k

 

Transaction Summary

================================================================================

Install       3 Package(s)

 

Total size: 6.4 M

Installed size: 29 M

Is this ok [y/N]: Y

yum还会让你选择是否把一些依赖的包也安装上,当然要选择“Y”:

Downloading Packages:

warning: rpmts_HdrFromFdno: Header V3
RSA/SHA1 Signature, key ID c105b9de: NOKEY

Retrieving key from
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Importing GPG key 0xC105B9DE:

 Userid : CentOS-6 Key (CentOS 6 Official
Signing Key) <centos-6-key@centos.org>

 Package:
centos-release-6-4.el6.centos.10.x86_64

 (@anaconda-CentOS-201303020151.x86_64/6.4)

 From   :
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Is this ok [y/N]: Y

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

 
Installing : postgresql-libs-8.4.13-1.el6_3.x86_64                                                                                        

1/3

 
Installing : postgresql-8.4.13-1.el6_3.x86_64                                                                                              

2/3

 
Installing : postgresql-server-8.4.13-1.el6_3.x86_64                                                                                      

3/3

 
Verifying  :
postgresql-server-8.4.13-1.el6_3.x86_64

1/3

 
Verifying  :
postgresql-libs-8.4.13-1.el6_3.x86_64                                                                                        

2/3

 
Verifying  :
postgresql-8.4.13-1.el6_3.x86_64                                                                                             

3/3

 

Installed:

 
postgresql-server.x86_64 0:8.4.13-1.el6_3                                                     
                                                

 

Dependency Installed:

 
postgresql.x86_64 0:8.4.13-1.el6_3

postgresql-libs.x86_64 0:8.4.13-1.el6_3

 

Complete!

[root@localhost ~]#

这样就安装好了。

在RedHat下,安装好后,PostgreSQL服务并没有启动:

[root@localhost ~]# service postgresql
status

postmaster is stopped

直接启动会报错:

[root@localhost ~]# service postgresql
start

/var/lib/pgsql/data is missing. Use
"service postgresql initdb" to initialize the cluster first.

                                                              
[FAILED]

上面是在提示数据库还没有初使用化,请按提示把数据库初使用化:

[root@localhost ~]# service postgresql
initdb

Initializing database:                                     [  OK  ]

再启动数据库:

[root@localhost ~]# service postgresql
status

postmaster (pid  1345) is running...

切换到操作系统下的“postgres”用户,登录数据库:

[root@localhost ~]# su - postgres

-bash-4.1$ psql

psql (8.4.13)

Type "help" for help.

 

postgres=# \l

                                  List of
databases

   
Name   |  Owner  
| Encoding |  Collation  |   
Ctype    |   Access

privileges  

-----------+----------+----------+-------------+-------------+------------------

 postgres 
| postgres | UTF8     |
en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres

                                                             :

postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres

                                                            
:

postgres=CTc/postgres

(3 rows)

 

postgres=#

这样就可以了。

也可以使用下面的命令把第三方贡献的软件包安装上:

yum install postgresql-contrib.x86_64

在RedHat或CentOS下,默认安装上的PostgreSQL的数据目录在/var/lib/pgsql/data目录下,如下:

-bash-4.1$ ls -l /var/lib/pgsql/data

total 80

drwx------. 5 postgres postgres  4096 Jun 30 11:07 base

drwx------. 2 postgres postgres  4096 Jun 30 11:08 global

drwx------. 2 postgres postgres  4096 Jun 30 11:07 pg_clog

-rw-------. 1 postgres postgres  3411 Jun 30 11:07 pg_hba.conf

-rw-------. 1 postgres postgres  1631 Jun 30 11:07 pg_ident.conf

图 2-1 PostgreSQL官方网站drwx------. 4 postgres postgres 
4096 Jun 30 11:07 pg_multixact

drwx------. 2 postgres postgres  4096 Jun 30 11:13 pg_stat_tmp

drwx------. 2 postgres postgres  4096 Jun 30 11:07 pg_subtrans

drwx------. 2 postgres postgres  4096 Jun 30 11:07 pg_tblspc

drwx------. 2 postgres postgres  4096 Jun 30 11:07 pg_twophase

-rw-------. 1 postgres postgres     4 Jun 30 11:07 PG_VERSION

drwx------. 3 postgres postgres  4096 Jun 30 11:07 pg_xlog

-rw-------. 1 postgres postgres 16886 Jun
30 11:07 postgresql.conf

-rw-------. 1 postgres postgres    57 Jun 30 11:08 postmaster.opts

-rw-------. 1 postgres postgres    45 Jun 30 11:08 postmaster.pid

2.1.3 在Windows下的安装

在Windows安装时,先要到官网上下载PostgreSQL的Windows安装包,如图2-1所示。

 

图 2-1 PostgreSQL官方网站

点页面中的“download”,进入下载页面,如图2-2所示。

 

图2-2 PostgreSQL官方下载页面

然后选择下载安装包的类型为“Windows”,进入“Windows”安装包的下载界面,如图2-3所示。

 

图2-3 PostgreSQL Windows版本下载页面

这里需要根据你的Windows是32位的还是64位来选择下载合适的安装包,如图2-4所示。

 

图2-4 PostgreSQL Windows版本下的各种类型下载页面

因为Windows版本的安装包,是Enterprise DB公司制作的,所以下载时会显示EnterpriseDB公司的界面,如图2-5所示。

 

图2-5 PostgreSQL Windows版本下载转到EnterpriseDB公司页面

如果在可以下载时就选择运行,那么在下载后,就会直接运行安装程序,当然也可以在下载完后,再双击安装程序,如图2-6所示。

安装程序运行后,即会显示出安装向导,点“Next”即可,如图2-7所示。

 

进入选择安装目录界面,一般选择默认安装目录即可,可直接点“Next”,如图2-8所示。

进入选择数据目录的界面,根据实际需要,选择具体的目录,然后点“Next”,如图2-9所示。

 

进入数据库超级用户postgres的密码设置界面,以后可以使用这个超级用户增加更多的数据库用户,设置完后点“Next”,如图2-10所示。

然后进入选择数据库监听端口的界面,如果5432这个端口没有被别的应用程序占用,那么可使用这个默认端口,点“Next”,如图2-11所示。

选择语言,使用默认设置就可以了,点“Next”,如图2-12所示。

进入准备安装的界面,点“Next”,如图2-13所示。

开始安装,如图2-14所示。

安装完毕后,会问你是否需要使用“Stack Builder”安装一些附加的软件。Stack Builder是一个安装PostgreSQL附加软件的图形化工具。如果不需要,可以把选择框中的勾去掉,直接结束安装。

 

 

 

如果没有去掉,则会出现“Stack Builder”的界面,在该界面中会提示你为哪一个PostgreSQL安装附加软件(出现此提示的原因是可以安装多个不同版本的PostgreSQL),如图2-16所示。

这时会出现一个可以选择安装附加软件的界面,根据需要选择了附加软件后,点“Next”,如图2-17所示。

 

如果是第一次安装,不知道要安装哪些附加软件,可以点取消。以后需要时可以再次运行“Stack Builder”安装相应的附加软件。

2.1.4 发行版安装总结

Windows下的安装是比较简单的,只需要运行图形界面,基本上在安装的过程中点选“Next”项就可以完成安装。

Linux下各发行版本则使用相应版本的包管理器来进行安装即可。

前面曾提到,从发行版本安装PostgreSQL,所安装的一般不是最新版本,如果想安装最新版本的PostgreSQL,则要看下面介绍的方法或见2.3.1节的技巧。

时间: 2024-12-02 13:09:39

PostgreSQL修炼之道:从小工到专家. 2.1 从发行版本安装的相关文章

PostgreSQL修炼之道:从小工到专家

数据库技术丛书 PostgreSQL修炼之道:从小工到专家 唐成著             图书在版编目(CIP)数据 PostgreSQL修炼之道:从小工到专家/唐成著. -北京:机械工业出版社,2015.4 (数据库技术丛书) ISBN 978-7-111-49872-8 I. P- II. 唐- III. 关系数据库系统 IV. TP311.132.3 中国版本图书馆CIP数据核字(2015)第063966号 PostgreSQL修炼之道:从小工到专家 出版发行:机械工业出版社(北京市西城

PostgreSQL修炼之道:从小工到专家. 导读

  数据库技术丛书 PostgreSQL修炼之道:从小工到专家   为什么要写这本书 PostgreSQL数据库是目前功能最强大的开源数据库,它基本包含了其他所有商业或开源的数据库中能找到的功能,甚至还包含了一些商业数据库中没有的功能.它是最接近工业标准SQL92的查询语言,并且正在实现新的功能以兼容最新的SQL标准:SQL2003.PostgreSQL也获得数个奖项,曾三次被评为Linux Journal杂志编辑评选的"最佳数据库奖"(2000年.2003年和2004年),并获200

PostgreSQL修炼之道:从小工到专家. 2.2 从源码安装

2.2 从源码安装 2.2.1 编译安装过程介绍 这里先把大致的安装过程介绍一下. 第一步:下载源代码. 第二步:编译安装.过程与Linux下其他软件的编译安装过程相同,都是"三板斧": ./configure make make install 第三步:编译安装完成后执行如下步骤. 1)使用initdb命令初使用化数据库簇. 2)启动数据库实例. 3)创建一个应用使用的数据库. 数据库簇是指数据库实例管理的系统文件和各个数据库文件的一个集合. 2.2.2 下载源代码 打开Postgr

PostgreSQL修炼之道:从小工到专家. 2.5 小结

2.5 小结 本章讲解了PostgreSQL在不同平台下的二进制安装方法,以及从源代码进行安装的方法.从前面的叙述中可以看出,在多数Linux发行版本中都自带了PostgreSQL的二进制安装包,可以直接使用Linux发行版本中的包管理器进行安装.不过这些自带的PostgreSQL版本都比较旧,如果想安装较新的PostgreSQL版本,可以从源代码进行编译安装.源代码编译安装也比较简单,要注意的是,需要先把一些依赖的开发包安装上.  

PostgreSQL修炼之道:从小工到专家. 1.2 PostgreSQL数据库与其他数据库的对比

1.2 PostgreSQL数据库与其他数据库的对比 1.2.1PostgreSQL与MySQL数据库的对比 可能有人会问,既然已经有一个人气很高的开源数据库MySQL了,为什么还要使用PostgreSQL?这主要是因为在一些应用场景中,使用MySQL有以下几个缺点: 功能不够强大:MySQL的多表连接查询方式只支持"Nest Loop",不支持"hash join"和"sort merge join".不仅如此,还有很多SQL语法它也不支持,子

PostgreSQL修炼之道:从小工到专家. 1.3 小结

1.3 小结 本章主要给大家介绍了什么是PostgreSQL数据库,它有哪些强大的功能,以及目前的一些应用情况,以便大家对PostgreSQL有一个初步的认识.

PostgreSQL修炼之道:从小工到专家. 2.4 PostgreSQL的简单配置

2.4 PostgreSQL的简单配置 本节将简单介绍PostgreSQL的配置方法,更具体的配置操作会在后面的章节中介绍.PostgreSQL数据库的配置主要是通过修改数据目录下的postgresql.conf文件来实现的. 2.4.1 修改监听的IP和端口 在数据目录下编辑postgresql.conf文件,找到如下内容: #listen_addresses = 'localhost'         # what IP address(es) to listen on; #port = 5

PostgreSQL修炼之道:从小工到专家. 1.1什么是PostgreSQL

1.1什么是PostgreSQL 1.1.1PostgreSQL概述 PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型.数组类型)和自定义类型.而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数.触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python.PL/Tcl,等等. 1.1.2Post

PostgreSQL修炼之道:从小工到专家. 3.2 DDL语句

3.2 DDL语句 DDL语句是创建.修改和删除表的语句,想要掌握SQL语言,必须对它有一定的了解. 3.2.1 建表语句 表是关系型数据库中最基本的对象,数据库中的表与实际生活中的二维表格很相似,有很多列也有很多行,每一列有一个名称,不同的列有不同的数据类型,比如,列可能是数字.文本字符串,也可能是日期类型.建表语句的一个简单语法如下: CREATE TABLE table_name ( col01_namme data_type,        col02_namme data_type,