服务项目:网站建设、仿站、程序开发、APP开发设计、移动网站开发设计、企业网站设计、电子商务网站开发、网站维护、网站推广、UX/UI 、HTML5、CSS3、JS / Jquery ...
四川浚网科技有限公司
四川浚网科技有限公司 (开发设计官网)TEL : 15308000360 / QQ : 38585404

您的位置:首页 > 技术经验 > 数据库 > 正文

Linux环境CentOS中源码编译安装PostgreSQL

PostgreSQL版本: postgresql-9.6.2.tar.gz
数据存放目录: /datafile/pgdata
软件安装位置: /usr/local/postgresql

安装步骤及脚本:

安装依赖环境

yum install -y gcc-c++ libxml2 libxml2-devel zlib zlib-devel libxslt libxslt-devel openssl openssl-devel systemtap-sdt-devel.x86_64 perl-ExtUtils-Embed readline readline-devel pam pam-devel tcl tcl-devel openldap openldap-devel python python-devel
创建用户和组
groupadd postgres
useradd -g postgres postgres
解压
tar zxvf postgresql-9.6.2.tar.gz
cd postgresql-9.6.2
配置
./configure --prefix=/usr/local/postgresql --with-pgport=5432 --with-perl --with-python --with-tcl --with-openssl --with-pam  --without-ldap --with-libxml --with-libxslt --enable-thread-safety --with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace --enable-debug
编译安装
make && make install
安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装 打开 postgresql-9.6.2/contrib
make && make install
创建postgres数据库的目录
mkdir -p /datafile/pgdata
chown postgres:postgres /datafile/pgdata/*
chown postgres:postgres /usr/local/postgresql/*
chmod -R 775 /datafile/pgdata/*
切换用户
su postgres
添加环境变量,并使之生效(初级用户请自行学习设置)
vi ./.bash_profile
添加以下内容:
# add PG env
export PGHOME=/usr/local/postgresql
export PGDATA=/datafile/pgdata
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm  -i'
alias ll='ls -lh'
#alias pg_start='pg_ctl start -D $PGDATA'
#alias pg_stop='pg_ctl stop -D $PGDATA -m fast'

#psql -h 主机名 -p 端口号 -U 用户名 -W(强制口令提示) [-d]数据库名
#psql -h $GHOST -p $PGPORT -U $PGUSER -W -d $PGDATABASE
#PGHOST 设置数据库服务器名。 如果它以一个斜杠开头,那么它声明一个 Unix 域套接字而不是 TCP/IP 通讯; 其值就是该套接字文件存储的目录(在缺省安装中,这个目录会是 /tmp)
#export PGHOST=$PGDATA
export PGHOST=localhost
#PGPORT 设置 TCP 端口号或者设置与 PostgreSQL 通讯的 Unix 域套接字的文件扩展。
export PGPORT=5432
export PGUSER=postgres #用于与数据库连接的用户名,initdb -U posgtres指定
#export PGDATABASE=demo#数据库名
修改环境变量后,可以重新登录该用户或者source .bash_profile让环境变量生效。 测试一下:
[postgres@localhost ~]$ source .bash_profile
[postgres@localhost ~]$ psql -V
psql (PostgreSQL) 9.6.2
初始化数据库
initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
#或则
initdb -D /datafile/pgdata
看到如下提示信息,表示初始化成功,下一步可以启动数据库了。
Success. You can now start the database server using:

    postgres -D /db/pgdata
or
    pg_ctl -D /db/pgdata -l logfile start
启动服务
pg_ctl start -D $PGDATA -l pgsql.log
#或则
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile start
查看数据库状态:
[postgres@localhost ~]$ pg_ctl status
关闭数据库
[postgres@localhost ~]$ pg_ctl stop -D $PGDATA
登录数据库: 使用"psql 数据库名"登录数据库。缺省数据库名时,连接到默认的数据库postgres。
[postgres@localhost ~]$ psql
使用PostgreSQL数据库命令行交互工具psql登录数据库后,可以执行SQL命令或者psql提供的元命令。使用\?可以查看psql的所有元命令和功能说明。
登录数据库后,命令行提示符为"数据库名=#",如:"postgres=#"。
 
登录后,psql常用的元命令:
 
\?, 查看psql所有可以使用的元命令和说明信息;
\l,列出所有的数据库信息;
\c demodb, 连接到demodb数据库;
\c[onnect] [数据库名称|- 用户名称|- 主机|- 端口|-], 连接到新的数据库;
\d, 列出表,视图和序列;
\d 名称, 描述表,视图,序列,或索引;
\db [模式], 列出表空间
\di [模式], 列出所有索引;
\dt [模式], 列出所有表;
\dT [模式], 列出数据类型
\h, 列出所有的SQL命令;
\h select, 列出select语句的语法;
\i file, 执行来自file的命令;
\q, 退出psql;
select * from pg_stat_activity; 显示当前活动任务列表.

创建测试数据库
create database testone;
切换到testone 数据库
\c testone
创建测试表
create table testone (id integer, name text);
插入测试数据
insert into testone values (1,'testone');
选择数据
select * from testone ; 
删除数据库
[postgres@localhost ~]$ dropdb test;
修改linux 系统用户postgres 的密码
passwd postgres 
PostgresSQL 数据库配置实现远程访问,修改 postgresql.conf 文件
vi /datafile/pgdata/postgresql.conf
设置允许远程连接,修改客户端认证配置文件pg_hba.conf,将需要远程访问数据库的IP地址或地址段加入该文件
vi /datafile/pgdata/pg_hba.conf
找到
host    all             all             127.0.0.1/32            trust
把上面的信息改成以下内容
host    all             all             0.0.0.0/0               trust
#设置监听整个网络,查找“ listen_addresses ”字符串
vi /datafile/pgdata/postgresql.conf
修改为如下:
listen_addresses = '*' 
重启服务
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile restart
停止服务
pg_ctl -D /datafile/pgdata -l /datafile/pgdata/logfile stop
查看端口是否启用
netstat -anp | grep 5432



上一篇:MariaDB/MySQL配置文件参数优化
下一篇:CentOS6.8 CentOS7 安装MongoDB

相关热词搜索:centos postgressql linux