我无法启动服务器 PostgreSQL 11:“pg_ctl:无法启动服务器”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/52963079/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
I can't start server PostgreSQL 11: "pg_ctl: could not start server"
提问by VyR
I am in CentOS Linux release 7.5.1804 (Core)
我在 CentOS Linux 版本 7.5.1804(核心)
When I login as postgres
and run:
当我登录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$
then I run
然后我跑
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$
I search in GOOGLE for "waiting for server to start..../bin/sh: logfile: Permission denied" but this error only happened in MAC and no solutions is displayed...
我在 GOOGLE 中搜索“正在等待服务器启动..../bin/sh: logfile: Permission denied”但是这个错误只发生在 MAC 中,没有显示任何解决方案......
Also I run
我也跑
bash-4.2$ postgres --version;postmaster --version;
postgres (PostgreSQL) 11.0
postgres (PostgreSQL) 11.0
bash-4.2$
then I believe PostgreSQL 11 is fine installed, but I can't start server.
然后我相信 PostgreSQL 11 安装得很好,但我无法启动服务器。
I install with this line:
我用这条线安装:
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
I didn't add [postgresql11-llvmjit.x86_64] because this requires many dependences.
我没有添加[postgresql11-llvmjit.x86_64],因为这需要很多依赖。
CentOS Linux release 7.5.1804 + PostgreSQL 11 ?
CentOS Linux 版本 7.5.1804 + PostgreSQL 11 ?
Do I need install aditional software?
我需要安装额外的软件吗?
回答by Laurenz Albe
The logfile
is not to be taken literally, it should be replaced with a file where the PostgreSQL server process has write permission.
在logfile
不被从字面上看,它应该与PostgreSQL服务器的过程中有写权限的文件替换。
You don't do it that way normally, rather you edit postgresql.conf
and configure log_destination
, logging_collector
, log_directory
and log_filename
. Then you start PostgreSQL without the -l
option.
你不这样做的一般,而你编辑postgresql.conf
和配置log_destination
,logging_collector
,log_directory
和log_filename
。然后你在没有-l
选项的情况下启动 PostgreSQL 。
Your attempt to start PostgreSQL with systemctl
probably did work; you can check with
您尝试使用 PostgreSQL 启动systemctl
可能确实有效;你可以检查
systemctl status postgresql-11
回答by smriti
So, I faced the same issue. First I checked for if and what all servers were active on my machine using :
所以,我遇到了同样的问题。首先,我使用以下命令检查我的机器上是否以及所有服务器都处于活动状态:
brew services list
Then I had some servers active so I stopped them as you need to stop them for posgresql server to work.
然后我有一些服务器处于活动状态,所以我停止了它们,因为您需要停止它们以使 posgresql 服务器工作。
brew services stop < name of the server/s active >
Then I created a new database
然后我创建了一个新的数据库
initdb /usr/local/var/postgres2
and started the server using
并使用启动服务器
pg_ctl -D /usr/local/var/postgres2 -l logfile start
Worked fine for me !! enter image description here
对我来说很好用!! 在此处输入图片说明