首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres unix套接字目录不持久

Postgres unix套接字目录不持久
EN

Stack Overflow用户
提问于 2014-11-09 02:58:04
回答 1查看 679关注 0票数 0

我正在使用Vagrant + Ansible配置一个Ubuntu虚拟机。Postgres安装正确,但是在每台机器上,重新启动并重新加载目录/var/run/postgresql,postgresql服务无法启动。要使postgres运行,我需要创建unix套接字目录并手动启动服务。

如果我尝试在没有套接字目录的情况下启动服务,则会得到以下错误

代码语言:javascript
复制
Error: Cannot stat /var/run/postgresql
 * No PostgreSQL clusters exist; see "man pg_createcluster"

我怎么才能避免这个问题呢?

编辑

以下是我的postgresql攻略说明

代码语言:javascript
复制
---
- name: Install Postgres + PostGIS
  apt: pkg={{ item }} state=installed update_cache=yes
  with_items:
    - libgeos-dev
    - postgresql-9.3
    - postgresql-contrib-9.3
    - postgresql-client-9.3
    - postgresql-server-dev-9.3
    - postgresql-9.3-postgis-2.1
    - postgresql-9.3-postgis-2.1-scripts
  sudo: yes
  notify:
    - restart postgresql

- name: PostgreSQL on statup
  service: name=postgresql enabled=yes state=started
  sudo: yes
  notify:
    - restart postgresql

- name: Install PostgreSQL config file
  sudo: yes
  template: src=postgresql.conf
            dest=/etc/postgresql/9.3/main/postgresql.conf
            owner={{ postgresql.user }}
            group={{ postgresql.group }}
  notify:
    - restart postgresql

- name: Install PostgreSQL Host-Based-Authentication file
  template: src=pg_hba.conf.j2
            dest=/etc/postgresql/9.3/main/pg_hba.conf
            owner={{ postgresql.user }} group={{ postgresql.group }}
  notify: restart postgresql
  sudo: yes
EN

回答 1

Stack Overflow用户

发布于 2014-11-09 04:49:44

/var/run/postgresql不应该在重新启动后仍然存在。通常情况下,/var/run链接在临时文件系统中。

Ubuntu打包的postgresql的启动序列是由这个函数完成的,在/usr/share/postgresql-common/init.d-functions

代码语言:javascript
复制
# start all clusters of version $1
# output according to Debian Policy for init scripts
start() {
    # create socket directory
    if [ -d /var/run/postgresql ]; then
        chmod 2775 /var/run/postgresql
    else
        install -d -m 2775 -o postgres -g postgres /var/run/postgresql
    fi

    do_ctl_all start "$1" "Starting PostgreSQL $1 database server"
}

这个函数创建目录,所以当它丢失时,可能是因为PostgreSQL没有启动,相反,PostgreSQL没有启动是因为目录丢失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26820873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档