PostgreSQL без установки в Windows, но сервер не запускается в CentOS Linux - PullRequest
0 голосов
/ 20 ноября 2018

Я скачал версию PostgreSQL для Windows отсюда: 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.По приведенной выше ссылке я загрузил двоичные файлы для версии 10.6 Linux x86-64.

Затем я выполнил шаги, аналогичные описанным в 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 голосов
/ 21 ноября 2018

Используемый вами двоичный файл 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...