Ubuntu 安装 PostgreSQL

在 Ubuntu 上安装 PostgreSQL

创建数据库实例

在 PostgreSQL 中,用户账户成为 角色 。默认情况下,PostgreSQL 使用 身份 认证。

意味着 PostgreSQL 将其角色与 Linux 的系统账户相关联。如果 PostgreSQL 中存在一个角色,则具有相同名称的相同 Linux 用户账户可作为该角色登录。

当您安装PostgreSQL 时,安装过程将创建一个 postgres 与默认 postgres 角色相关联的的用户账户。

创建操作系统用户

创建一个独立操作系统用户,为了防止因为应用软件的BUG被攻击者利用,对系统造成破坏

建议在 安装之前预先手动创建 postgreSQL 用户

group add -g 1000 postgres
useradd -g 1000 -u postgres
id postgres

注意事项:

  1. 不能是 root 或具有操作系统管理的账号,例如拥有 sudo 权限的用户

  2. 如果是部署集群,可配置 NTP 服务,统一集群中每个节点的操作系统的 uid 和 gid。

    **如果集群某些节点用户的 uid 和 gid 与其他节点不一致,可通过 groupmod 命令和 usermod 命令进行修改

    groupmod -g 1000 postgres
    usermod -u 1000 -g 1000 postgres
    

访问 PostgreSQL的Ubuntu 下载页面,找到脚本

执行以下命令创建文件存储库配置:

sudo sh -c'echo“ deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main”> /etc/apt/sources.list.d/pgdg.list'

导入存储库签名密钥:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

更新软件包列表:

sudo apt-get update

安装最新版本的 PostgreSQL:

sudo apt-get install postgresql

#如果要使用特定版本,请使用'postgresql-12'或类似的名称代替'postgresql'sudo apt-get install postgresql-12

创建数据目录

在磁盘上初始化一个数据的存储区域。用来存放数据文件和数据库实例的配置文件。

mkdir -p /pgdata/versions/(data,backups,scipts, archive_wals)

将数据目录的属主修改为创建的操作系统用户,并将数据目录权限为 0700。

chown -R postgres.postgres /pgdata/versions
chmod 0700 /pgdata/versions/data

初始化数据目录

使用 initdb 工具。将创建一个新的数据库目录(包括存放数据库数据的目录)

创建 template 和 postgres 数据库,初始化数据库实例的默认区域和字符集编码。

find / -name initdb

intdb -D /pgdata/versions/data -W
# -W 在初始化过程中,要求为数据库超级用户创建密码

启动和停止数据库服务器

  • service

    # 启动
    service postgresql start
    
    # 停止
    service postgresql stop
    
    # 查看
    service postgresql status
    
  • pg_ctl

    pg_ctl:PostgreSQL中初始化数据库目录,启动、停止、重启、重加载数据库服务,或查看数据库服务状态的工具。

    # 切换角色
    su - postgres
    
    # 启动
    pg_ctl -D /pgdata/versions/data start
    
    # 查看
    pg_ctl -D /pgdata/versions/data status
    
    # 停止
    # -s 参数开启和关闭屏幕消息输出
    # -t SECS 参数设置超时时间,超过SECS值设置的超时时间会在自动退出
    # -m 参数控制数据库用什么模式停止
    ## 停止模式
    ## -ms smart:等待活动的事务提交结束,并等待客户端主动断开连接之后关闭数据库
    ## -mf fast:回滚所有活动的事务,并强制断开客户端的连接之后关闭数据库
    ## -mi immediat:立即终止所有服务器进程,当下次数据库启动时先进入恢复状态(不建议)
    pg_ctl -D /pgdata/versions/data -ms stop
    

开启远程连接

修改postgresql.conf

sudo vi /pgdata/versions/data/postgresql.conf

# 将 listen_addresses 修改 = '*'

postgresql_remote_connection2

修改pg_hba.conf

sudo vi /pgdata/versions/data/pg_hba.conf

# 添加 host all all 0.0.0.0/0 md5

postgresql_remote_connection2

重启PostgreSQL服务

# 1、systemctl重启服务
sudo systemctl restart postgresql-version
# 2、或者重启系统
sudo reboot

开放端口

  • Ubuntu

    sudo ufw allow 5432/tcp
    
  • CentOS7

    # 添加指定端口
    firewall-cmd --add-port=5432/tcp --permanent
    
    # 重载端口
    firewall-cmd --reload
    
    # 查询端口是否成功
    firewall-cmd --query-port=5432/tcp
    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值