我无法启动服务器PostgreSQL 11:“pg_ctl:无法启动服务器”

nhhxz33t  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(3)|浏览(594)

我使用的是CentOS Linux版本7.5.1804(核心)
当我以postgres身份登录并运行时:

bash-4.2$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /var/lib/pgsql/11/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /usr/pgsql-11/bin/pg_ctl -D /var/lib/pgsql/11/data -l logfile start

bash-4.2$

然后我就跑

bash-4.2$ /usr/pgsql-11/bin/pg_ctl start -l logfile -D /var/lib/pgsql/11/data
waiting for server to start..../bin/sh: logfile: Permission denied
 stopped waiting
pg_ctl: could not start server
Examine the log output.
bash-4.2$ date
Wed Oct 24 01:50:44 -05 2018
bash-4.2$

我在GOOGLE中搜索“正在等待服务器启动..../bin/sh:logfile:Permission denied”(日志文件:权限被拒绝),但此错误仅发生在MAC中,并且未显示解决方案...
还我跑

bash-4.2$ postgres --version;postmaster --version;
postgres (PostgreSQL) 11.0
postgres (PostgreSQL) 11.0
bash-4.2$

那么我相信PostgreSQL 11安装得很好,但是我无法启动服务器.
我使用以下行安装:

yum install postgresql-jdbc.noarch postgresql-jdbc-javadoc.noarch postgresql-unit11.x86_64 postgresql-unit11-debuginfo.x86_64 postgresql11.x86_64 postgresql11-contrib.x86_64 postgresql11-debuginfo.x86_64 postgresql11-devel.x86_64 postgresql11-docs.x86_64 postgresql11-libs.x86_64 postgresql11-odbc.x86_64 postgresql11-plperl.x86_64 postgresql11-plpython.x86_64 postgresql11-pltcl.x86_64 postgresql11-server.x86_64 postgresql11-tcl.x86_64 postgresql11-test.x86_64

我没有添加[postgresql 11-llvmjit.x86_64],因为这需要很多依赖项。
CentOS Linux版本7.5.1804 + PostgreSQL 11?
我需要安装其他软件吗?

bejyjqdl

bejyjqdl1#

logfile不应按字面理解,应替换为PostgreSQL服务器进程具有写入权限的文件。
通常情况下,您不会这样做,而是编辑postgresql.conf并配置log_destinationlogging_collectorlog_directorylog_filename。然后启动PostgreSQL,但不使用-l选项。
您尝试使用systemctl启动PostgreSQL可能已经成功;您可以查看

systemctl status postgresql-11
vwoqyblh

vwoqyblh2#

所以,我面临着同样的问题。首先,我检查是否所有的服务器都在我的机器上活动,使用:

brew services list

然后我有一些服务器活动,所以我停止了他们,因为你需要停止他们的posgresql服务器的工作。

brew services stop < name of the server/s active >

然后我创建了一个新数据库

initdb /usr/local/var/postgres2

并使用以下命令启动服务器

pg_ctl -D /usr/local/var/postgres2 -l logfile start

对我来说很好用!!enter image description here

deyfvvtc

deyfvvtc3#

我认为有一个后台postgres进程正在运行,首先你需要杀死这个服务。我有同样的问题,并通过这个命令修复:

sudo /etc/init.d/postgresql stop

或者您可以尝试终止系统监视器中所有postgres命名进程并删除数据库目录中的postmaster.pid文件。
然后,您可以按以下方式启动服务器:

sudo -u <your-username> pg_ctl -D <your-database-file-location> start

举个例子:

sudo -u shc /home/shc/postgres-built/bin/pg_ctl -D /home/shc/mydatabase start

完成后,为了避免再次遇到相同的问题,请停止服务器,如下所示:

sudo -u <your-username> pg_ctl -D <your-database-file-location> stop

相关问题