Fedora27改postgreSQL10數據庫位置

  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. 執行新位置的目錄列表。請注意,新目錄的初始上下文是usr_t,這個上下文不足以讓SELinux爲PostgreSQL提供保護機制。當我們更改好上下文後,它將能夠在新區域中正常運行。
    # ls -lZ /opt/postgresql/
    在這裏插入圖片描述
  2. 更改新位置的所有權以允許postgres用戶和組訪問。這設置了SELinux仍將遵守的傳統Unix權限。這設置了SELinux仍將遵守的傳統Unix權限。
    # chown -R postgres:postgres /opt/postgresql
  3. /usr/lib/systemd/system/postgresql-10.service文件,相應的Environment改爲
    Environment=PGDATA=/opt/postgresql/data/.重新加載使更改生效,sudo systemctl daemon-reload
  4. su - postgres進postgres用戶下,修改~/.bash_profile,同樣使PGDATA=/opt/postgresql/data/,運行source ~/.bash_profile使文件生效。
  5. 初始化新位置的數據庫。
    su - postgres -c "initdb -D /opt/postgresql/data"
  6. 運行semanage命令爲/ opt / postgresql及其中的任何其他目錄/文件添加上下文映射:
    semanage fcontext -a -t postgresql_db_t "/opt/postgresql(/.*)?"
  7. 此映射將寫入文件/etc/selinux/targeted/contexts/files/file_contexts.local:
  8. 現在使用restorecon命令將此上下文映射應用於正在運行的系統:restorecon -R -v /opt/postgresql
  9. 現在/ opt / postgresql位置已經標記了PostgreSQL的正確上下文,mysqld服務將成功啓動:# service postgresql start
  10. 確認/ opt / postgresql的上下文是否正確:等功能,功能按鈕位於編輯區域與預覽區域中間;

參考
[1]【Postgresql】數據庫postgresql 10的data目錄遷移(不用重新安裝)
[2] PostgreSQL Changing Database Location

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章