postgresql的安装:源码安装(推荐):http://my.oschina.net/hippora/blog/375292
1.tar -xjvf postgresql-9.3.4.tar.bz
2.cd postgresql-9.3.4
3. ./configure(会有错误提示,缺少依赖包readline和zlib)
4. yum install readline-devel和yum install zlib-devel
5.再执行./configure  (后面可跟特定的目录,比如、usr/local/postgresql作为安装目录,没有的话,默认的会在/usr/local/pgsql下)
6.make & make install(执行这一步,postgresql安装完毕,会在/usr/local生成个pgsql目录,里面是postgresql的安装目录)
7.添加用户专门用于postgresql :useradd postgres 和passwd postgres
8.在/usr/local/pgsql下新建data文件夹,用于放置postgresql的数据文件:mkdir /usr/local/pgsql/data,然后chown -R postgres /usr/local/pgsql/data(一定要属于新建postgres用户)
9.配置环境变量:
su postgres
cd ~
vi .bash_profile
加上:
# postgres
PGDATA=/usr/local/pgsql/data
PATH=/usr/local/pgsql/bin:$PATH
export PGDATA PATH

. .bash_profile (很重要!!)
10.pg_ctl initdb ,然后初始化数据库,在/usr/local/pgsql/data下初始化数据文件和配置文件
11.然后启动pg_ctl start -l /usr/local/pgsql/pgsql.log postgresql服务启动
12.可以通过netstat -tulnp | grep postgres 查看5432端口占用监听情况
13.到这里安装配置结束,还需要修改两个配置:
在/usr/local/pgsql/data下postgresql.conf中端口5432放开,同时listen_addresses = '*'(不然TCP/IP监听不到,客户端远程连接不上postgresql)
在/usr/local/pgsql/data下pg_hba.conf下,添加host all all 192.168.9.0/0 md5 (不然连接不上postgresql)----------用于限定某些机器能连或者不能连postgresql

14.配置结束,通过psql进入postgresql的命令行(最后要注意防火墙是否打开,打开的话要把5432端口放开)

安装过程注意的问题:
1. data的文件夹的属于哪个用户的问题,一定属于postgres
2. postgresql.conf监听的ip一定要放开listen_addresses='*'
3. 基于主机的验证pg_hba.conf中一定要放开你要用的客户端连接postgresql的ip(或者所有ip,生产机上最好不要),验证采用MD5或者ident或者trust
4. 5432防火墙的问题,生产机数据库的话,把5432放开

postgresql的备份与恢复:

/usr/local/postgresql-9.3.4/bin/createdb -U postgres 数据库名称 -T template0 新建一个数据库

/usr/local/postgresql-9.3.4/bin/dropdb -U postgres 数据库名称 删除一个数据库

/usr/local/postgresql-9.3.4/bin/psql -U postgres 要恢复的数据库名称 < 备份文件目录路径 用备份文件恢复一个数据库
例子:/usr/local/postgresql-9.3.4/bin/psql -U postgres cloud$1 < /tmp/latest_dbbak/cloud$1

/usr/local/postgresql-9.3.4/bin/pg_dump -U postgres 要恢复的数据库名称 > 备份文件目录路 备份数据库

备份恢复某一张表:
/usr/local/postgresql-9.3.4/bin/psql -U postgres 要恢复的数据库名称 -T 表名 < 备份文件目录路径 用备份文件恢复一个数据库
例子:/usr/local/postgresql-9.3.4/bin/psql -U postgres cloud$1 < /tmp/latest_dbbak/cloud$1

/usr/local/postgresql-9.3.4/bin/pg_dump -U postgres 要恢复的数据库名称 -T 表名> 备份文件目录路 备份数据库

进入postgresql命令行:

su postgres,然后psql -U postgres
几个常用的系统表,
select * from pg_shadow;-----所有postgresql的用户 或者\l
select * from pg_database;----所有数据库
select * from pg_tables;-----所有系统表
select * from pg_stat_activity ---所有数据库的进程,可以用于查看某个数据库被哪些引用,然后kill掉
select * from pg_roles --- 所有角色表 或者\du
如何找到postgreSQL数据库中占空间最大的表:
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC limit 1
如何计算postgreSQL数据库所占用的硬盘大小
SELECT pg_size_pretty(pg_database_size('数据库名字'))
创建用户或者角色(create user 和create role区别在于默认能不能Login的问题)
CREATE ROLE name LOGIN PASSWORD '123456‘;
CREATE USER name PASSWORD '123456';
删除用户或者角色
DROP ROLE或者DROP USER

创建数据库:
/usr/local/postgresql-9.3.4/bin/createdb -U postgres 数据库名称 -T template0
删除数据库:
/usr/local/postgresql-9.3.4/bin/dropdb -U postgres 数据库

下面是常用的pg_hba.conf配置:

#
TYPE DATABASE USER CIDR-ADDRESS METHOD #
"local" is for Unix domain socket connections only
local
all all ident #
IPv4 local connections:
host
all all 127.0.0.1/32 md5 #
IPv6 local connections:
host
all all ::1/128 md5

  

TYPE定义了多种连接PostgreSQL的方式,分别是:“local”使用本地unix套接字,“host”使用TCP/IP连接(包括SSL和非SSL),“host”结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用IPv6方式,“hostssl”只能使用SSL TCP/IP连接,“hostnossl”不能使用SSL TCP/IP连接。

DATABASE指定哪个数据库,多个数据库,库名间以逗号分隔。“all”只有在没有其他的符合条目时才代表“所有”,如果有其他的符合条目则代表“除了该条之外的”,因为“all”的优先级最低;

USER指定哪个数据库用户(PostgreSQL正规的叫法是角色,role)。多个用户以逗号分隔。

CIDR-ADDRESS项local方式不必填写,该项可以是IPv4地址或IPv6地址,可以定义某台主机或某个网段。

METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject。

ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_ident.conf,这个文件记录着与操作系统用户匹配的数据库用户,如果某操作系统用户在本文件中没有映射用户,则默认的映射数据库用户与操作系统用户同名。比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。解决方案:1、在pg_ident.conf中添加映射用户;2、改变认证方式。

md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。

password是以明文密码传送给数据库,建议不要在生产环境中使用。

trust是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用。

reject是拒绝认证。

 

本地使用psql登录数据库,是以unix套接字的方式,附合local方式。

使用PGAdmin3或php登录数据库,不论是否本地均是以TCP/IP方式,附合host方式。如果是本地(数据库地址localhost),CIDR-ADDRESS则为127.0.0.1/32。

例:

1、允许本地使用PGAdmin3登录数据库,数据库地址localhost,用户user1,数据库user1db:

1
host    user1db    user1    127.0.0.1/32    md5

2、允许10.1.1.0~10.1.1.255网段登录数据库:

1
host    all    all    10.1.1.0/24    md5

3、信任192.168.1.10登录数据库:

1
host    all    all    192.168.1.10/32    trust

 

pg_hba.conf修改后,使用pg_ctl reload重新读取pg_hba.conf文件,如果pg_ctl找不到数据库,则用-D /.../pgsql/data/ 指定数据库目录,或export PGDATA=/.../pgsql/data/ 导入环境变量。

 

另:PostgreSQL默认只监听本地端口,用netstat -tuln只会看到“tcp 127.0.0.1:5432 LISTEN”。修改postgresql.conf中的listen_address=*,监听所有端口,这样远程才能通过TCP/IP登录数据库,用netstat -tuln会看到“tcp 0.0.0.0:5432

linux---postgresql的安装和配置的更多相关文章

  1. Linux FTP的安装与配置

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  2. Linux版OpenVPN安装、配置教程(转)

    本文将以目前最新的openvpn-2.3.4.tar.gz(更新于2014-5-2,下载地址)为例来介绍如何在Linux系统中安装.配置及使用OpenVPN. 在这里,我们选用了一台预装CentOS ...

  3. Linux FTP的安装与配置(转)

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  4. 在Linux上怎么安装和配置Apache Samza

    samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...

  5. Linux下MySQL安装和配置

    --Linux下MySQL安装和配置 ---------------------------2014/05/18 Linux下MySQL的配置和安装 本文的安装采用 rpm 包安装 1.首先在官网下载 ...

  6. redis 在Linux下的安装与配置

    redis在Linux下的安装与配置 by:授客  QQ:1033553122 测试环境 redis-3.0.7.tar.gz 下载地址: http://redis.io/download http: ...

  7. Linux FreeTDS的安装与配置

    Linux FreeTDS的安装与配置 一.简介 官方网站:http://www.freetds.org 版本:0.64 下载地址:http://ibiblio.org/pub/Linux/ALPHA ...

  8. Tomcat——Linux下的安装和配置

    Tomcat在Linux上的安装与配置 以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JD ...

  9. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  10. Linux下MySQL安装及配置

    Linux下MySQL安装及配置 安装MySQL Ubuntu系统中,直接使用apt install的方式去安装MySQL的服务端和客户端,MySQL的客户端必须安装,否则无法通过命令连接并操作MyS ...

随机推荐

  1. mysql,分组后,再次进行过滤

    查出平均分大于80以上的班级 select class_id, avg(score) from students group by class_id having avg(score)>80;  ...

  2. Java数据流学习

    数据流 与机器无关的操作Java基本数据类型.网络传输会用. DataInputStream 数据输入流允许应用程序以与机器无关的方式从底层输入流中读取Java基本数据类型.应用程序可以使用数据输出流 ...

  3. equals区别==

    来自:https://blog.csdn.net/m0_37721946/article/details/78405595 java中的数据类型,可分为两类: 1.基本数据类型 byte,short, ...

  4. 安装electron-react-boilerplate遇到的问题

    一.yarn安装缓慢 // 查看下载源 yarn config get registry // 修改下载源 yarn config set registry https://registry.npm. ...

  5. docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  6. leetcode-15双周赛-1288-删除被覆盖区间

    题目描述: 方法一:排序O(Nlogn) class Solution: def removeCoveredIntervals(self, intervals: List[List[int]]) -& ...

  7. node-解压版 安装配置测试

    一.下载node压缩包   地址:https://nodejs.org/en/download/ 二.解压下载的压缩包,在文件根目录新增两个文件夹: node_cache:缓存文件位置 node_gl ...

  8. CentOS6.5下安装jdk配置环境变量错误问题:

    CentOS6.5下安装jdk,使用gedit /etc/profile  配置环境变量为如下: export JAVA_HOME=/usr/soft/jdk7export PATH=$JAVA_HO ...

  9. 如何通过Dataphin构建数据中台新增100万用户?

    欢迎来到数据中台小讲堂!这一期我们来看看,作为阿里巴巴数据中台(OneData - OneModel.OneID.OneService)方法论的产品载体,Dataphin如何帮助传统零售企业实现数字化 ...

  10. 9.26-mkdir,tree,touch命令

    mkdir -- 创建文件 [root@wen data]# mkdir --help 用法:mkdir [选项]... 目录... 若指定目录不存在则创建目录. 长选项必须使用的参数对于短选项时也是 ...