Я удивлен, что установка postgresql на Ubuntu не дает мне сразу работающую настройку сервера postgres: он требует дополнительных шагов:
Setting up postgresql-common (154) ...
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.4-1) ...
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql (9.3+154) ...
Я видел подобное поведение в прошлом, когда Программа установки не смогла создать кластер по умолчанию (я так думаю), потому что некоторые настройки локали отсутствовали, но я думаю, что они настроены правильно.
Ново ли (и потому правильно), что в Ubuntu 14.04 требуется дополнительный шаг? Или что-то (тихо) сломано?
Все это происходит на новом VPS DigitalOcean 14.04.
Сегодня я играл с Ubuntu 14.04, и столкнитесь с той же проблемой - но в моем случае я принимал свои марионеточные декларации. В любом случае проблемой было то же: когда я, как ожидали, найду файл конфигурации под /etc/postgresql/9.3/main/postgresql.conf
, он отсутствовал. Через какое-то время я нашел корень своей проблемы: по некоторым причинам локаль поля Vagrant, которое я использовал (на самом деле, ubuntu/trusty64) была неправильно сконфигурирована, и во время установки я видел такие сообщения:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "ru_RU.UTF-8",
LC_MONETARY = "ru_RU.UTF-8",
LC_ADDRESS = "ru_RU.UTF-8",
LC_TELEPHONE = "ru_RU.UTF-8",
LC_NAME = "ru_RU.UTF-8",
LC_MEASUREMENT = "ru_RU.UTF-8",
LC_IDENTIFICATION = "ru_RU.UTF-8",
LC_NUMERIC = "ru_RU.UTF-8",
LC_PAPER = "ru_RU.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
И в конце установки:
Unpacking postgresql (9.3+154) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up libpq5 (9.3.5-0ubuntu0.14.04.1) ...
Setting up postgresql-client-common (154) ...
Setting up postgresql-client-9.3 (9.3.5-0ubuntu0.14.04.1) ...
update-alternatives: using /usr/share/postgresql/9.3/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
Setting up ssl-cert (1.0.33) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up postgresql-common (154) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Adding user postgres to group ssl-cert
Creating config file /etc/logrotate.d/postgresql-common with new version
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Processing triggers for ureadahead (0.100.0-16) ...
Setting up postgresql-9.3 (9.3.5-0ubuntu0.14.04.1) ...
Error: The locale requested by the environment is invalid.
Error: could not create default cluster. Please create it manually with
pg_createcluster 9.3 main --start
or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql (9.3+154) ...
Processing triggers for libc-bin (2.19-0ubuntu6.5) ...
После фиксации локали с такой командой sudo locale-gen ru_RU ru_RU.UTF-8 ru_RU ru_RU.UTF-8
прежде, чем установить postgresql проблема, которую уводят. Надежда это помогло бы кому-то в будущем или мне от будущего.
Используйте pg_createcluster version clustername
для создания нового кластера. Это создаст папку, названную версией под /etc/postgresql
содержащий папку, названную clustername
, который будет содержать файлы конфигурации БД для Вашего нового кластера: среда, pg_ctl.conf
, pg_hba.conf
, pg_ident.conf
, postgresql.conf
, start.conf
. Замена clustername
с Вашим предпочтительным кластерным именем.
Проблемы, которые происходят, появляются на системной локали
warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "en_US.UTF-8",
LC_MONETARY = "en_US.UTF-8",
LC_ADDRESS = "en_US.UTF-8",
LC_TELEPHONE = "en_US.UTF-8",
LC_NAME = "en_US.UTF-8",
LC_MEASUREMENT = "en_US.UTF-8",
LC_IDENTIFICATION = "en_US.UTF-8",
LC_NUMERIC = "en_US.UTF-8",
LC_PAPER = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
первый шаг для конфигурирования локали сброса с командой:
$ sudo dpkg-reconfigure locales
Однако postgresql не может быть выполнен, потому что текущие кластеры установки Пост-ГРЭС не сделаны.
Затем выполняет команду:
$ sudo pg_createcluster 9.3 main --start
postgresql с командой:
$ sudo service postgresql start
## Or
$ sudo /etc/init.d/postgresql start
результаты как ниже
$ sudo service postgresql start
* Starting PostgreSQL 9.3 database server
Проверка состояние postgresql выполнение или не
$ sudo service postgresql status
9.3/main (port 5432): online