postgres开始发生致命错误

时间:2015-07-08 14:26:36

标签: postgresql postgresql-9.3

我不熟悉如何使用postgres并需要一些帮助。我目前正在运行OSX Yosemite。

当我开始 postgres时,我得到了这个:

pg_ctl: could not start server
Examine the log output.
There was an error executing [start] on postgres. Check /Users/work/git/proj/var/log/postgres.log for details.
createuser: could not connect to database postgres: FATAL:  could not open relation mapping file "global/pg_filenode.map": No such file or directory

日志在下面。

当我尝试停止 postgres时,我得到了这个:

Postgres not running

当我跑ps -ef |grep postgres时,我得到了这个:

20010    13398     1  0 Jul07 ?        00:00:00 /usr/pgsql-9.3/bin/postgres -h  -k /Users/work/git/proj/var/pg
20010    13399 13398  0 Jul07 ?        00:00:09 postgres: logger process                                            
20010    13401 13398  0 Jul07 ?        00:00:10 postgres: checkpointer process                                      
20010    13402 13398  0 Jul07 ?        00:00:00 postgres: writer process                                            
20010    13403 13398  0 Jul07 ?        00:00:00 postgres: wal writer process                                        
20010    13404 13398  0 Jul07 ?        00:00:36 postgres: autovacuum launcher process                               
20010    13405 13398  0 Jul07 ?        00:00:02 postgres: stats collector process                                   
20010    18112 17723  0 10:22 pts/0    00:00:00 grep postgres

这一切意味着什么,我怎么可能解决这个问题?

日志文字

Postgres data dir doesn't exist. Creating
The files belonging to this database system will be owned by user "rose.smith".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /Users/work/git/proj/postgres ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
creating configuration files ... ok
creating template1 database in /Users/work/git/proj/postgres/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    /usr/pgsql-9.3/bin/postgres -D /Users/work/git/proj/postgres
or
    /usr/pgsql-9.3/bin/pg_ctl -D /Users/work/git/proj/postgres -l logfile start

waiting for server to start....< 2015-06-04 17:24:57.966 GMT >LOG:  redirecting log output to logging collector process
< 2015-06-04 17:24:57.966 GMT >HINT:  Future log output will appear in directory "pg_log".
 done
server started
waiting for server to shut down.... done
server stopped
waiting for server to start....< 2015-06-04 18:10:18.044 GMT >LOG:  redirecting log output to logging collector process
< 2015-06-04 18:10:18.044 GMT >HINT:  Future log output will appear in directory "pg_log".
 done
server started
"/Users/work/git/proj/var/log/postgres.log" 413L, 20935C
运行后

/usr/pgsql-9.3/bin/postgres -D /Users/work/git/proj/postgres

< 2015-07-08 14:40:36.331 GMT >FATAL:  lock file "postmaster.pid" already exists
< 2015-07-08 14:40:36.331 GMT >HINT:  Is another postmaster (PID 18145) running in data directory "/Users/work/git/proj/postgres"?

2 个答案:

答案 0 :(得分:1)

在几分钟前尝试这些命令后,我无法说出为什么会这样,但它现在正在工作。祝所有有同样问题的人好运。

  1. 停止postgres
  2. killall postgres
  3. 使用rm -rf postgres
  4. 删除postgres数据库
  5. start postgres
  6. 这个网站很有帮助。我认为我的问题可能跟他一样。

      

    在Postgres.app仍在运行时,我删除了〜/ Library / Containers / com.heroku.postgres或〜/ Application Support / Postgres /。由于我删除了pid文件,旧版本仍在运行,并且它不知道如何关闭它。

         

    来源:https://github.com/PostgresApp/PostgresApp/issues/96

答案 1 :(得分:0)

我遇到了同样的问题。我用以下命令解决了这个问题。

如果使用HomeBrew安装postgresql ...

rm /usr/local/var/postgres/postmaster.pid

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

希望这能帮到你!