linux---postgresql的安装和配置
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的安装和配置的更多相关文章
- Linux FTP的安装与配置
Linux FTP的安装与配置 ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service ...
- Linux版OpenVPN安装、配置教程(转)
本文将以目前最新的openvpn-2.3.4.tar.gz(更新于2014-5-2,下载地址)为例来介绍如何在Linux系统中安装.配置及使用OpenVPN. 在这里,我们选用了一台预装CentOS ...
- Linux FTP的安装与配置(转)
Linux FTP的安装与配置 ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service ...
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- Linux下MySQL安装和配置
--Linux下MySQL安装和配置 ---------------------------2014/05/18 Linux下MySQL的配置和安装 本文的安装采用 rpm 包安装 1.首先在官网下载 ...
- redis 在Linux下的安装与配置
redis在Linux下的安装与配置 by:授客 QQ:1033553122 测试环境 redis-3.0.7.tar.gz 下载地址: http://redis.io/download http: ...
- Linux FreeTDS的安装与配置
Linux FreeTDS的安装与配置 一.简介 官方网站:http://www.freetds.org 版本:0.64 下载地址:http://ibiblio.org/pub/Linux/ALPHA ...
- Tomcat——Linux下的安装和配置
Tomcat在Linux上的安装与配置 以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JD ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
- Linux下MySQL安装及配置
Linux下MySQL安装及配置 安装MySQL Ubuntu系统中,直接使用apt install的方式去安装MySQL的服务端和客户端,MySQL的客户端必须安装,否则无法通过命令连接并操作MyS ...
随机推荐
- IDA Pro - 如何得到比较清楚的逆向伪代码
原文地址:Question about disassembler 简介 这篇文章介绍了如何在不使用插件的IDA Hex-Rays如何得到比较清晰的伪代码.IDA Hex-Rays功能很强大,只要你提供 ...
- 【串线篇】SQL映射文件-联合查询(完结association+cellection)
1.级联属性的方式封装查出1-1 查钥匙的时候顺别把对应的级联的那把锁也查出来 1).两个JavaBean,Key里有对应的Lock(private Lock lock;//当前钥匙能开哪个锁:) 2 ...
- 简单使用vuex状态管理
1.在使用vue-cli脚手架创建项目后 npm install vuex 2.创建store文件夹,结构如下: 3.store中 index.js代码如下: 4.入口文件main.js中引入stor ...
- 【leetcode】399. Evaluate Division
题目如下: Equations are given in the format A / B = k, whereA and B are variables represented as strings ...
- service-web
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...
- JS中关于引用类型数据及函数的参数传递
(JavaScript 中,函数的参数传递方式都是按值传递,没有按引用传递的参数) 一.数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Un ...
- SSH弱小算法支持问题
SSH弱小算法支持问题:SSH的配置文件中加密算法没有指定(没有配置加密算法),则会默认支持所有加密算法,包括arcfour,arcfour128,arcfour256等弱加密算法.解决方法:1.修改 ...
- jquery 自定义类
jQuery自定义类封装: (function ($) { $.DragField = function (arg) { var name = "你好"; //这个是私有变量,外部 ...
- Locust 源码理解与分析
前言 相信很多小伙伴会选择Locust作为压测工具辅助测试,本文从Locust源码开始分析它的优劣,结论在最后,最终我还是选择了Jmeter 主要分析了Locust源码的两个文件:main.py 和 ...
- Class-DbConnectionManipulator:Execute,QueryFirstDefault<>
ylbtech-Class-DbConnectionManipulator:Execute,QueryFirstDefault<> 1.返回顶部 1. public object GetS ...