没有安装的PostgreSQL在Windows中运行但服务器未在CentOS Linux中启动

时间:2018-11-20 17:51:21

标签: postgresql

我已经从此处下载了Windows版本的PostgreSQL:https://www.enterprisedb.com/products-services-training/pgbindownload

我解压缩了该文件,并执行了以下命令以运行服务器,并且该服务器在Windows 10中可以正常工作:

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>initdb -D C:/Users/myuser/pgdataTest -U postgres -E UTF8

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>pg_ctl -D C:/Users/myuser/pgdataTest start
waiting for server to start....2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv6 address "::1", port 5432
2018-11-20 23:06:37.912 IST [14540] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2018-11-20 23:06:38.231 IST [11352] LOG:  database system was shut down at 2018-11-20 23:05:02 IST
2018-11-20 23:06:38.385 IST [14540] LOG:  database system is ready to accept connections
 done
server started

D:\postmaster_standalone\postgresql-11.0-2-windows-x64-binaries\pgsql\bin>psql -U postgres
psql (11.0)
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# 

在我的CentOS中,我用uname -m command检查了一下,它返回了x86_64。 从上面的链接中,我下载了Linux x86-64版本10.6的二进制文件。

然后,我按照以下顺序在Windows中执行了类似的步骤,但是服务器未启动:

[cloudera@quickstart bin]$ initdb -D /home/cloudera/pgdata -U postgres -E UTF8 
The files belonging to this database system will be owned by user "cloudera".
This user must also own the server process.
-----
-----
The database cluster will be initialized with locale en_US.UTF-8.
Success. You can now start the database server using:

    postgres -D /home/cloudera/pgdata
or
    pg_ctl -D /home/cloudera/pgdata -l logfile start

[cloudera@quickstart bin]$ pg_ctl -D /home/cloudera/pgdata/ start
server starting
[cloudera@quickstart bin]$ psql 
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
[cloudera@quickstart bin]$ psql -U postgres
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我犯错了吗?请帮助。

1 个答案:

答案 0 :(得分:0)

您使用的PostgreSQL二进制文件必须为unix_socket_directories使用更改后的默认值,并且启动服务器的用户无权在其中写入。

编辑/home/cloudera/pgdata/postgresql.conf并设置

unix_socket_directories = /tmp

或通过以下方式启动服务器

pg_ctl -D /home/cloudera/pgdata/ -o '-k /tmp' start

要连接,请使用

psql -h /tmp -U postgres -d postgres