PostgreSQL 安装

简述

以前用习惯了MySQL,来到新公司开始接触PostgreSQL,这个名字读起来可真拗口呀。
鉴于MySQL和PostgreSQL都是目前比较流行的开源免费数据库,也被各个互联网公司广泛使用,甚至一些传统型的公司也开始放弃Oracle,转投MySQL和PostgreSQL的怀抱。

至于两者之间的比较和对比,由于初次接触PostgreSQL,暂时还不便评论,先从最初始的安装走起。

环境准备

Host List

IP Address Hosts Disk Comment
192.168.0.22 db 1TB Database Host

OS

我们采用CentOS作为宿主机操作系统,版本请升级为最新稳定版7.6。(CentOS7即可,建议升级到最新稳定版7.6)
升级方式,请参考本人的另一篇文章:https://www.jianshu.com/p/3e3bc1f51332

并将内核升级到最新稳定版本4.20.

[root@localhost ~]# uname -sr
Linux 4.20.0-1.el7.elrepo.x86_64
[root@localhost ~]# 
[root@localhost ~]# 

安装步骤

看了PG的官网,本来准备安装最新的PG12,结果官网说PG12现在刚刚做了崩溃测试,甚至还没有Alpha和Beta测试,建议继续使用PG10,那我们就老老实实的继续PG10吧。

下载安装

首先安装yaml包

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

安装PG Server。

yum install postgresql10-contrib postgresql10-server -y

此时,进入到/usr目录应该可以看到PG10的目录。

[root@localhost usr]# ls -al
total 176
drwxr-xr-x.  14 root     root      4096 Dec 28 13:50 .
dr-xr-xr-x.  17 root     root      4096 Jan  7 15:09 ..
dr-xr-xr-x.   2 root     root     28672 Dec 28 13:50 bin
drwxr-xr-x.   2 root     root         6 Apr 11  2018 etc
drwxr-xr-x.   2 root     root         6 Apr 11  2018 games
drwxr-xr-x.   3 root     root        22 Apr 11  2018 include
dr-xr-xr-x.  47 root     root      8192 Dec 28 10:45 lib
dr-xr-xr-x.  53 root     root     36864 Dec 28 11:29 lib64
drwxr-xr-x.  25 root     root      4096 Dec 28 10:45 libexec
drwxr-xr-x.  12 root     root      4096 Apr 11  2018 local
drwxr-xr-x    6 root     root    48 Dec 28 13:50 pgsql-10
dr-xr-xr-x.   2 root     root     16384 Dec 28 11:29 sbin
drwxr-xr-x. 118 root     root      4096 Dec 28 11:29 share
drwxr-xr-x.   4 root     root        32 Apr 11  2018 src
lrwxrwxrwx    1 root     root        10 Dec 28 10:43 tmp -> ../var/tmp
[root@localhost usr]# 

至此已安装完毕,接下来我们对数据库进行初始化。

初始化数据库

准备数据库存储目录

由于PG会默认采用/data作为数据库数据文件存储路径,我们运维把磁盘空间全部mount到/home目录,暂时不能重新mount,如果是自己的环境,可以重新规划磁盘。所以我们需要将PG的数据盘符路径调整到/home目录下。重申:这是研发测试环境,如果生产环境,还请采用标准的磁盘规划。

[root@localhost ~]# mkdir /home/postgresql
[root@localhost ~]# mkdir /home/postgresql/data

增加PG相关用户并赋权

我们需要创建PG的专属用户,并将PG相关的目录全部转归该用户下。
yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;
可以查询下,如果没有创建,则手工创建下。

[root@localhost ~]# useradd postgres
useradd: user 'postgres' already exists
[root@localhost ~]# 

调整相关目录的权限。

[root@localhost ~]#  chown -R postgres:postgres /home/postgresql
[root@localhost ~]#  chmod 750 -R /home/postgresql
[root@localhost ~]# chown -R postgres:postgres /usr/pgsql-10

修改Root用户的profile,增加PG相关的环境变量。

[root@localhost ~]# vi .bash_profile 
export LD_LIBRARY_PATH=/usr/pgsql-10/bin
export PGDATA=/home/postgresql/data

修改postgres用户的环境变量。

[root@localhost ~]# su postgres
bash-4.2$ cd ~
bash-4.2$ ls -al
total 16
drwx------   3 postgres postgres   75 Dec 28 14:28 .
drwxr-xr-x. 41 root     root     4096 Dec 28 13:50 ..
drwx------   4 postgres postgres   31 Dec 28 13:50 10
-rw-------   1 postgres postgres  500 Dec 28 14:28 .bash_history
-rwx------   1 postgres postgres  265 Dec 28 14:02 .bash_profile
-rw-------   1 postgres postgres   23 Dec 28 14:28 .psql_history
bash-4.2$ vi .bash_profile
[ -f /etc/profile ] && source /etc/profile
PGDATA=/home/postgresql/data
export PGDATA
......

执行初始化。

bash-4.2$ cd /usr/pgsql-10/bin
bash-4.2$ ./postgresql-10-setup initdb

设置自启动

退出postgres用户,用root用户执行如下命令。

[root@localhost ~]# systemctl enable postgresql-10

修改PG启动的参数,修改PGDATA路径。

[root@localhost ~]# vi /usr/lib/systemd/system/postgresql-10.service
......
# Location of database directory
Environment=PGDATA=/home/postgresql/data/
......
[root@localhost ~]# systemctl restart postgresql-10
[root@localhost ~]# systemctl status postgresql-10
● postgresql-10.service - PostgreSQL 10 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-10.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-01-07 15:08:58 CST; 20h ago
     Docs: https://www.postgresql.org/docs/10/static/
  Process: 15371 ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 15410 (postmaster)
    Tasks: 8
   Memory: 15.8M

查看PG的状态为active running,就说明PG启动完成。

修改PG的运行参数

经过上面的步骤,我们的PG Server已可以启动,只是还只能本机访问。接下来我们对PG进行参数调整。
找到PG Data的目录,然后修改其中的postgresql.conf.

......
listen_addresses = '*'
......

由于本例为研发测试环境,不做生成环境用,参数调整就不做详细展开了。

重启PG。

[root@localhost ~]# systemctl restart postgresql-10

创建Schema和用户

注意替换自己的数据库用户密码。

bash-4.2$ psql
psql (10.6)
Type "help" for help.

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

推荐阅读更多精彩内容

  • 安装PostgreSQL数据库(Linux篇) 编译环境 Linux: CentOS 5.5 # yum inst...
    XuDongTian阅读 1,203评论 0 6
  • pg_ctl 名称 pg_ctl -- 启动、停止、重启 PostgreSQL语法 pg_ctl start [-...
    老肖阅读 902评论 0 0
  • 客户端安装sudo apt-get install postgresql-client 服务器安装sudo apt...
    代码界的小学生阅读 2,016评论 0 1
  • 我是爸爸妈妈的臭丫头,整天懒懒散散,十分气人,大过年,人人都高兴,我却手一松把妈妈新买的杯子弄残了,我总是玩忘了...
    枃氼仑麽灬阅读 327评论 0 1
  • 感恩一直被美景萦绕着,震撼着,感动着,渲染着,浸醉在美的海洋中,内心无比的柔软平静而愉悦。感恩这美的感觉真的是有效...
    开荒者cx阅读 172评论 0 2