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

    xiaoxiao2024-04-22  11

    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节的技巧。

    相关资源:从小工到专家,PostgreSQL的修炼之道
    最新回复(0)