PG学习日记(1)PostgreSQL13.7 linux部署

一、安装 PostgreSQL13

以 root 身份运行如下命令

rpm -ivh postgresql13-libs-13.7-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql13-13.7-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql13-server-13.7-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql13-contrib-13.7-1PGDG.rhel7.x86_64.rpm

实际安装时执行最后一条命令报错缺少依赖包,于是使用yum命令安装最后一个包成功。

二、 数据库配置

2.1 修改环境变量

可以先删除默认创建的postgres用户

userdel -r postgres

然后创建用户组

groupadd -g 701 postgres

useradd -g 701 -u 701 -s /bin/bash -m postgres

这样的好处是用户home目录就会在/home/postgres下,否则默认是在/var/lib/pgsql下,

su - postgres

vi ~/.bashrc

添加下面变量

#For PostgreSQL

export PGHOME=/usr/pgsql-13

export PGDATA=/app/pgsql/13.7/data

export PGHOST=/app/pgsql/13.7/socket

export PGUSER=postgres

export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

export PATH=$PGHOME/bin:$PATH

2.2 修改数据库配置

前面修改的数据库目录,这里需要创建相关目录,且要赋予权限

# mkdir /app

# chown postgres:postgres /app

# su - postgres

$ mkdir -p /app/pgsql/13.7/data

$ mkdir -p /app/pgsql/13.7/socket

初始化数据库

$ initdb

修改 postgresql.conf

$  cd $PGDATA

$  vi postgresql.conf

# 修改listen_addresses

listen_addresses = '*'

修改unix_socket_directories,但是如果只是单纯修改这个参数指定的路径,那么psql会报错,在用户环境变量中指定PGHOST变量为这个目录就可以解决这个问题了,所以前面的PGHOST环境变量已经指定

unix_socket_directories = '/app/pgsql/13.7/socket'

重启数据库生效,在root下用systemctl restart postgresql-13重启

postgres=# show unix_socket_directories ;

 unix_socket_directories

-------------------------

 /app/pgsql/13.7/tmp

(1 row)

修改 pg_hba.conf(pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库

$  cd $PGDATA

$  vi pg_hba.conf

# 新增一行

host    all             all             0.0.0.0/0               md5

三、配置自启动

修改数据存储目录在自启动脚本中的值

#  vi /usr/lib/systemd/system/postgresql-13.service

# Location of database directory

# Environment=PGDATA=/var/lib/pgsql/13/data/ #-- 注释掉这一句

Environment=PGDATA=/app/pgsql/13.7/data/  #-- 修正为实际值

使用系统命令控制数据库启停

systemctl enable postgresql-13

systemctl status postgresql-13

systemctl start postgresql-13

四、登录数据库,创建用户及数据库

4.1、切换到用户postgres

su - postgres

4.2、登录数据库

psql -U postgres

psql

两种方式都可以,区别以后研究

远程连接其他库:

psql -h <hostname or IP> -p <port> [数据库名] [用户名]

4.3、查询角色属性

\du

4.4、给账户绑定从属角色

GRANT postgres TO root;

4.5、退出当前数据库

\q

小结:要习惯使用\命令,不懂就查看 \?

五、创建用户及数据库

创建root用户及密码:create user root with password 'oracle';

创建数据库:create database dt owner root;

授权:grant all privileges on database dt to root;

六、重启、关闭数据库

pg_ctl命令可以控制数据库启停等

pg_ctl start              

pg_ctl stop    

pg_ctl restart 

pg_ctl reload  

pg_ctl status  

pg_ctl promote 

pg_ctl logrotate

pg_ctl kill    

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值