文档章节

intall postgresql 9.1 on CentOS

mark35
 mark35
发布于 2012/03/01 15:46
字数 1274
阅读 394
收藏 0

http://people.planetpostgresql.org/devrim/index.php?/archives/48-What-is-new-in-PostgreSQL-9.0-RPMs.html

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

Important note:
In order to use PGDG repository properly, you may need to exclude postgresql packages from the repository of the distro.
Here are the steps:
    As root, cd /etc/yum.repos.d
    Edit distro's .repo file:
        On Fedora, edit fedora.repo and fedora-updates.repo, [fedora] sections
        On CentOS, edit CentOS-Base.repo, [base] and [updates] sections.
        On Red Hat, edit edit /etc/yum/pluginconf.d/rhnplugin.conf [main] section.
    Add
    exclude=postgresql*
    to the bottom of the section.


That is enough for excluding distro packages.

CentOS6:
X64
rpm -ivh http://yum.pgrpms.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
i386
rpm -ivh http://yum.pgrpms.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpm

CentOS5
rpm -ivh http://yum.pgrpms.org/9.1/redhat/rhel-5.0-i386/pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql91 postgresql91-libs postgresql91-contrib postgresql91-devel postgresql91-test
yum update libevent compat-libevent14



如果是通过EPEL安装的pg9.1可把路径添加到环境变量中修改 ~/.bash_profile:
PATH=$PATH:$HOME/bin:/usr/pgsql-9.1/bin

初始化pgsql:
# sudo -u postgres /usr/pgsql-9.1/bin/initdb -E utf8 --locale=zh_CN.UTF8 /data1/pgsql91/data
或者
# su postgres
# initdb -E utf8 --locale=C -D /usr/local/pgsql/data
# /usr/pgsql-9.1/bin/initdb -E utf8 --locale=zh_CN.UTF8 -D /var/lib/pgsql/9.1/data    #或者



2. 启动数据库 i参数允许远程连接,或者修改 /pgsql/data/postgresql.conf 修改listen
#service postgresql start
$pg_ctl -o "-i" -D /usr/local/pgsql/data -l logfile start

$postgres -D /usr/local/pgsql/data -i &
#pg_ctl -o "-i" -D /usr/local/pgsql/data -l logfile start

3. 修改管理员口令
$ sudo -upostgres psql -U postgres
postgres=# ALTER USER postgres WITH PASSWORD 'new-passwd';

3.创建用户
管理员用户
bash> createuser -Ps issence -U postgres
bash> createuser -APRS chery -U postgres

向导添加用户命令格式
createuser 是 SQL 命令 CREATE USER的封装。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
参数说明:
shell>sudo -upostgres createuser -P issence
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
-r, --createrole          role can create new roles
-R, --no-createrole       role cannot create roles
-s, --superuser           role will be superuser
-S, --no-superuser        role will not be superuser



 PostgreSQL 创建帐号,数据库,权限
创建用户 issence,密码 pass,创建数据库 db_name,赋予 issence 在 数据库db_name 上的所有权限(只有这3个create,tmp, connect)。
# su postgres
$ psql
postgres# CREATE USER issence WITH PASSWORD 'pass';
postgres# CREATE DATABASE db_name;
postgres# GRANT ALL ON DATABASE db_name TO issence;
postgres# GRANT SELECT,UPDATE ON tb_table TO mark;        # 授予表权限(select,update,insert,drop...)给某用户,一次只能一个表
postgres# REVOKE SELECT ON tb_table FROM mark;    # 取消用户的表权限(select,update,insert,drop...)
postgres# GRANT CONNECT ON DATABASE db_name TO PUBLIC;



更改数据库用户口令:
postgres=# ALTER USER hm WITH PASSWORD 'xx';

创建数据库:
createdb and createuser 在后面都必须加上用户名,如果不加的话psql会认为你登录系统的名字就是执行这个操作的用户
除非当前是 su postgres, 如果在初始化集群时已经设置默认编码则这儿可以省略:
# createdb db_test -U postgres -O issence
shell> createdb db_test -O issence
或者pg命令行
postgres=# CREATE DATABASE mychery OWNER = issence;

# createdb db_test -U postgres -E UTF8 --locale=zh_CN.UTF8
shell> createdb db_macro -E utf8 --locale=zh_CN.UTF8  --owner=issence -Upostgres

管上述哪种方法都只能得到部分恢复了的数据库。另外,你可以将整个恢复过程当成一个单独的事务,这样就能够保证要么全部恢复成功,
要么全部回滚。可以通过向 psql 传递 -1 或 --single-transaction 命令行参数达到此目的。
使用这个模式的时候即使一个很微小的错误也将导致已经运行了好几个小时的恢复过程回滚。尽管如此,这种模式也比手动清除哪些不完整的恢复数据强。
psql -Uissence dbname < infile

恢复:
# gzip -cd db.sql.gz | psql -1 -Upostgres -d newdb -f -
# gzip -dc mychery-20111213.sql.gz | psql -Upostgres -d uc -


5. 创建数据库
在PostgreSQL服务启动后,使用postgres用户便可以成功的运行psql命令连接数据库了。
但是这时候使用其他Linux用户仍然不能够使用psql进入PostgreSQL数据库,会出现如下错误:
psql: FATAL: Ident authentication failed for user "postgres"
这是因为PostgreSQL数据库安装的时候只创建了一个数据库用户postgres,默认密码为空。(注意这里的postgres是数据库用户,跟Linux系统用户是两个概念)
而且默认的鉴权策略是"ident"鉴权,即默认配置下只有使用postgres系统用户才可以使用postgres数据库用户来登陆。
我们需要把鉴权方式改为密码鉴权。
首先编辑 /usr/local/pgsql/data/pg_hba.conf,做如下修改:
把其中所有的"ident sameuser"更改为md5(即使用md5密码加密鉴权)并且远程连接时只允许数据库hm用户
host    all         hm         0.0.0.0/0           md5



重启服务:
#service postgresql restart
#/etc/init.d/postgresql-9.1 restart
$pg_ctl  -D /usr/local/pgsql/data reload
$pg_ctl  -D /usr/local/pgsql/data restart


使用pg_restore -j参数并行恢复,pg_dump备份必须使用参数Fc. -j不能和-1参数同时使用
pg_dump mychery -Ft > mychery.dump
pg_restore -d mychery -j5 mychery.dump





© 著作权归作者所有

mark35
粉丝 142
博文 21
码字总数 17615
作品 0
成都
程序员
私信 提问
CentOS 安装PostgreSQL 9.1

PostgreSQL通常也简称Postgres,是一个关系型数据库管理系统,适用于各种Linux操作系统、Windows、Solaris、BSD和Mac OSX。PostgreSQL遵循PostgreSQL许可,是一个开源软件。PostgreSQL由Pos...

leycau
2015/06/29
35
0
为RedHat系统安装发布版的PostgreSQL数据库

下载及安装 rpm -i http://yum.postgresql.org/9.1/redhat/rhel-4-x8664/pgdg-redhat-9.1-4.noarch.rpm yum install postgresql91-server yum install postgresql91-contrib 创建初始库 serv......

AlfredCheung
2012/09/13
178
0
PostgreSQL在CentOS下的源码安装

下面主要是PostgreSQL在CentOS下的安装步骤,和Linux步骤基本类似。 1.环境: 操作系统:CentOS-6.2-x8664 虚拟机:Vmware-workstation 6.5 数据库:postgresql-9.1.3 工具: SecureCRT 5.1.2 2...

kenyon_君羊
2012/04/15
2.8K
2
Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)

说明: 我是用root用户在终端登陆的,如果是非root用户,那在命令前需要加上"sudo",你懂的... 第一步:在Ubuntu下安装Postgresql 1.使用 apt-get install安装 root@server2-virtual-machine...

今幕明
2015/03/17
166
0
开发者讨论PostgreSQL的未来

Developers Discuss PostgreSQL's Future 开发者讨论PostgreSQL的未来 posted by Thom Holwerda on Fri 6th May 2011 21:00 UTC 发表于:2011年5月7日 北京时间05:00 The release of the fi......

xyxzfj
2011/05/07
250
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部