Fedora27改postgreSQL10数据库位置

1 篇文章 0 订阅
1 篇文章 0 订阅
  1. 默认位置
    Fedora27中,PostgreSQL存储其数据库的默认位置为/var/lib/pgsql/10/data

  1. 运行ls -lZ /var/lib/pgsql/10查看postgresql的默认数据库位置的SELinux上下文
    在这里插入图片描述
    这显示了postgresql_db_t,它是数据库文件位置的默认上下文元素。必须手动将此上下文应用于将在此示例中使用的新数据库位置,以使其正常运行。
  2. 创建一个新的用于存放数据库数据的位置。本例中使用/opt/postgresql/data
# mkdir -p /opt/postgresql/data
  1. 停止数据库服务service postgresql-10 stop
  2. 执行新位置的目录列表。请注意,新目录的初始上下文是usr_t,这个上下文不足以让SELinux为PostgreSQL提供保护机制。当我们更改好上下文后,它将能够在新区域中正常运行。
    # ls -lZ /opt/postgresql/
    在这里插入图片描述
  3. 更改新位置的所有权以允许postgres用户和组访问。这设置了SELinux仍将遵守的传统Unix权限。这设置了SELinux仍将遵守的传统Unix权限。
    # chown -R postgres:postgres /opt/postgresql
  4. /usr/lib/systemd/system/postgresql-10.service文件,相应的Environment改为
    Environment=PGDATA=/opt/postgresql/data/.重新加载使更改生效,sudo systemctl daemon-reload
  5. su - postgres进postgres用户下,修改~/.bash_profile,同样使PGDATA=/opt/postgresql/data/,运行source ~/.bash_profile使文件生效。
  6. 初始化新位置的数据库。
    su - postgres -c "initdb -D /opt/postgresql/data"
  7. 运行semanage命令为/ opt / postgresql及其中的任何其他目录/文件添加上下文映射:
    semanage fcontext -a -t postgresql_db_t "/opt/postgresql(/.*)?"
  8. 此映射将写入文件/etc/selinux/targeted/contexts/files/file_contexts.local:
  9. 现在使用restorecon命令将此上下文映射应用于正在运行的系统:restorecon -R -v /opt/postgresql
  10. 现在/ opt / postgresql位置已经标记了PostgreSQL的正确上下文,mysqld服务将成功启动:# service postgresql start
  11. 确认/ opt / postgresql的上下文是否正确:等功能,功能按钮位于编辑区域与预览区域中间;

参考
[1]【Postgresql】数据库postgresql 10的data目录迁移(不用重新安装)
[2] PostgreSQL Changing Database Location

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值