PostgreSQL安装手册

    xiaoxiao2025-12-29  3

    本文讲述Linux生产环境(RHEL5.5 Kernel2.6.32)下安装PostgreSQL9.5.2的过程。安装所有contrib扩展,安装Python扩展。

    安装详细细节,或者其他需求请参考官方文档安装说明:http://www.postgresql.org/docs/9.5/interactive/installation.html

    处理依赖

    PostgreSQL的依赖都比较常见,一般系统中均已自带: GNU Make 3.8+,ISO/ANSI C compiler,tar, zlib, GNU Readline Lib 6。

    GNU Readline Lib 这里提一下GNU Readline Lib。这个主要是用于psql shell一些查看历史记录之类功能。 因为生产环境的Readline版本可能较老,如果要手动安装,请参考GNU ReadLine document: https://cnswww.cns.cwru.edu/php/chet/readline/INSTALL 如果安装的时候因为readline报错了,可以在configure的时候用—without-readline去掉。

    Anaconda 安装Python扩展需要Python解释器,libpython,和Python头文件。 这里以使用Anaconda发行版安装Python: 从http://continuum.io/downloads下载对应的版本。 执行bash Anaconda2-4.0.0-Linux-x86_64.sh 依据提示选择安装路径。这里为/usr/local/anaconda,没有权限请sudo。 等待安装完成,将anaconda目录下bin, inlucde, lib目录分别加入各自的搜索路径中。

    export PATH="/usr/local/anaconda/bin/:$PATH"export C_INCLUDE_PATH="/usr/local/anaconda/include/:$C_INCLUDE_PATH"export CPLUS_INCLUDE_PATH="/usr/local/anaconda/include/:$CPLUS_INCLUDE_PATH"export LD_LIBRARY_PATH="/usr/local/anaconda/lib/:$LD_LIBRARY_PATH"export LIBRARY_PATH="/usr/local/anaconda/lib/:$LIBRARY_PATH"

    2. PostgreSQL的安装

    编译安装主体tar -jxf postgresql-9.5.2.tar.bz2cd postgresql-9.5.2./configure PYTHON=/usr/local/anaconda/bin/python --with-python make -j8sudo make installmake install-docs# 编译安装标准扩展$ cd contrib$ make -j8$ sudo make install

    3. 数据库的初始化与启动

    创建一个用户,postgres主进程应当由一个独立的用户持有。$ adduser postgres 创建一个数据目录,并指定上面创建的用户所有$ mkdir /usr/local/pgsql/data$ chown postgres /usr/local/pgsql/data$ su - postgres# 初始化数据目录$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data$ 启动数据库/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &# 另一种启动数据库的方式是使用pg_ctl,推荐这种方式:$ /usr/local/pgsql/bin/pg_ctl init -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile# 最后通过pg_ctl启动数据库/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

    4. 配置PostgreSQL

    创建数据库、角色、授权

    PostgreSQL安装完成后会自带一个postgres数据库,用户postgres可直接使用psql连接。 每个操作系统用户可以直接连接自己同名的数据库。psql [-U<username>] [database]

    $ psql# 创建数据库$ create database vonng;# 创建角色:$ CREATE USER vonng login Superuser password 'xxxxxxx';#授予权限:$ GRANT ALL PRIVILEGES ON DATABASE vonng to vonng;

    允许从外部主机访问PostgreSQL

    # Pg默认只接受本机的连接。需要配置HBA允许外部链接,具体细节参见文档。# 这里假设我们希望在10.0.0.0-10.255.255.255的A类局域网段内允许任何用户连接任何数据库。# 打开数据文件夹中的pg_hba.conf文件.$ vi /usr/local/pgsql/data/pg_hba.conf# 在最下方添加一行host all all 10.0.0.0/8 trust# 打开数据文件夹中的postgresql.conf# 找到 #listen_addresses = 'localhost',修改为 listen_addresses="*"# 重启PostgreSQL:$ pg_ctl stop -D /usr/local/pgsql/data$ pg_ctl start -D /usr/local/pgsql/data -l logfile# 在另一台机器上测试 $ psql -h<Your Pgserver host> -U<Your Pgserver username>。

    5. PostgreSQL的常用运维命令

    #备份一个数据库$ pg_dump [connection-option...] [option...] [dbname]#恢复一个数据库$ psql [connectino-option] < dumpfile.sql 相关资源:Zabbix 4.x with PostgreSQL 安装手册.pdf
    最新回复(0)