CentOS上装postgreSQL

pgsql 安装

准备
检查系统是否安装了postgresSQL。若安装了需要卸载,清理干净,防止造成安装时不必要的问题。# 检查是否安装
rpm -qa | grep postgres # 检查PostgreSQL 是否已经安装
rpm -qal | grep postgres # 检查PostgreSQL 安装位置

卸载

rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64
rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64

安装yum 源
在官方文档选择自己系统对应的参数,获取到yum源的正确连接,执行安装。
1 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

安装客户端和服务端
yum install postgresql10
yum install postgresql10-server

初始化数据库,启动服务
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10

说明:

  • 1、数据库默认路径:/var/lib/pgsql/10/data ;
  • 2、修改默认初始化路径,使用postgreSQL自带的初始化命令initdb,如下操作:
  • mkdir /opt/PostgreSQL

  • mkdir /opt/PostgreSQL/data

  • chmod 755 /opt/PostgreSQL/data

  • chown postgres:postgres /opt/PostgreSQL/data

  • su - postgres

  • ./initdb --encoding=UTF-8 --local=zh_CN.UTF8 --username=postgres --pw (*注意:这步即使无法执行也可跳过的,影响不大,直接操作下面的步骤) •

6.修改用户密码

创建一个linux系统用户dbuser

adduser dbuser 

使用数据库管理员用户登录psql来新建以及配置新用户

先切换到postgres用户

su postgres 

执行psql命令登录psql控制台(此时不需要密码,原因在后面说)

psql 

此时会进入到控制台(系统提示符变为'postgres=#')

先为管理员用户postgres修改密码

\password postgres 

建立新的数据库用户(和之前建立的系统用户要重名)

create user dbuser with password 'pwd'; 

为新用户建立数据库

create database testdb owner dbuser; 
# 把新建的数据库权限赋予dbuser 
grant all privileges on database testdb to dbuser; 
# 退出控制台 \q

psql命令存在简写形式如果当前Linux系统用户,同时也是PostgreSQL用户,则可以省略用户名(-U参数的部分)。如果使用dbuser登录系统,PostgreSQL数据库存在同名用户dbuser,可以直接使用下面的命令登录数据库,且不需要密码。
psql testdb
此时,如果PostgreSQL内部还存在与当前系统用户同名的数据库,则连数据库名都可以省略。比如,假定存在一个叫做dbuser的数据库,则直接键入psql就可以登录该数据库。
psql

7.开启远程访问
vim /var/lib/pgsql/10/data/postgresql.conf
修改#listen_addresses = 'localhost' 为 listen_addresses=''
port=5432
当然,此处‘
’也可以改为任何你想开放的服务器IP

psql认证权限配置
认证权限配置文件 /var/lib/pgsql/9.5/data/pg_hba.confpsql 支持11中身份验证方式下面是常见的四种

  • trust凡是连接到服务器的,都是可信任的。只需要提供psql用户名,可以没有对应的操作系统同名用户。
  • password 和 md5对于外部访问,需要提供psql用户名和密码。对于本地连接,提供psql用户名密码之外,还需要有操作系统访问权。(用操作系统同名用户验证)password和md5的区别就是外部访问时传输的密码是否用md5加密。
  • ident对于外部访问,从ident服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录对于本地连接,实际上使用了peer
  • peer通过客户端操作系统内核来获取当前系统登录的用户名,并作为psql用户名进行登录。

这时候,如果我们尝试用新创建的用户 dubser 登录数据库 mydb
psql -U dbuser -d mydb -h localhost
会遇到下面的错误
psql: FATAL: Ident authentication failed for user "dbuser"
这是因为 PostgresSQL 默认没有启用密码登录,所以我们要先修改配置启用之

打开配置文件
sudo vim /var/lib/pgsql/10/data/pg_hba.conf
找到下面这两行
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
将 ident 改为 md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
保存配置文件后,重启PostgresSQL
systemctl restart postgresql-10

接下来,我们就可以用新创建的用户 dbuser 登录数据库
psql -U dbuser -d mydb -h localhost
注意 -h localhost 不能省略,否则 PostgresSQL 还会走 ident 的验证,会出现下面的错误
psql: FATAL: Peer authentication failed for user "dbuser"

打开 pg_hba.conf 文件
sudo vim /var/lib/pgsql/10/data/pg_hba.conf
加入下面一行配置,表示对任意 IP 访问进行密码验证
host all all 0.0.0.0/0 md5
最后,重启 PostgreSQL 使配置生效

更改数据库的时区:
vim /var/lib/pgsql/10/data/postgresql.conf
log_timezone = 'asia/shanghai'
timezone = 'asia/shanghai'

修改服务器时区:
timedatectl set-timezone Asia/Shanghai

卸载:
找到pgsql的所有包
rpm -qa | grep postgresql
然后卸载全部包:
yum remove postgresql95-libs-9.5.13-1PGDG.rhel7.x86_64

清理已有的安装位置
rpm -qal | grep postgres

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容

  • 1. 数据库安装与配置步骤 安装环境准备操作系统: Oracle Linux Server 6.5IP 地址...
    garyond阅读 3,362评论 0 7
  • 项目使用pg,整理个初级的安装教程,简化实施。部分内容参考来源:https://www.jianshu.com/p...
    老肖阅读 5,842评论 0 1
  • 在上一章中我们讲了怎么安装PostgreSQL,在数据库安装完成及启动数据库服务以后,需要连接到数据库上对数据库里...
    shark_tear阅读 84,769评论 3 2
  • 虽然自己上了十中的耻辱柱,但校园的生活还是要继续嘛。这是个阳光极好的一天,难得的万里无云,同学们嬉笑着到音乐教室上...
    星光社的戴铭阅读 385评论 0 0
  • 一直都在反思,却一直都在掉坑,为什么会是这样呢?这背后到底是什么样的底层模式让自己给忽视了,或是对其视而不见? 原...
    心念有约阅读 817评论 3 0