Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 017 146 раз!

Форум

Добро пожаловать, Гость!

Ошибка запуска PostgreSQL

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Zike
Сообщения: 7
C нами: 2 года 7 мес

Непрочитанное сообщение Zike » 26 апр 2014, 06:55

Здравствуйте. Вопрос такой:
Установил OpenServer на одном компьютере, перенес папку на другой компьютер и теперь при запуске PostgeSQL получаю ошибку:
FATAL: role "USER" does not exist...
в файле конфига постгри настроен доступ для all... Как добраться до скрипта инициализирующего постгри при старте сервера? хочу там попробовать прописать initdb -E 'UTF-8' -U postgres -A trust
Т.е. если я все правильно понимаю то изначально при первом старте PostgreSQL происходит инициализация кластера баз данных от имени пользователя компьютера... перенеся папку на другой компьютер мы уже не можем получить доступ к кластеру от имени другого пользователя... в PostgreSQL есть возможность жестко указать имя пользователя для инициализации кластер к примеру postgres и при последующих запусках тоже использовать это имя... Но для того чтобы это сделать нужен доступ к скриптам инициализации PostgreSQL, а их найти не получается...
Также пробовал в батник перед стартом сервера прописывать следующее:
@SET PGBIN=%realprogdir%\modules\database\PostgreSQL-9.3.4\bin
@SET PATH="%PGBIN%";%PATH%
@SET PGDATA=%realprogdir%\userdata\PostgreSQL-9.3.4
@SET PGDATABASE=postgres
@SET PGUSER=postgres
@SET PGPORT=5432
@SET PGLOCALEDIR=%realprogdir%\modules\database\PostgreSQL-9.3.4\share\locale
@%PGBIN%\initdb.exe -E 'UTF-8' -U postgres -A trust
но почему-то не срабатывает, видимо после этого происходит переинициализация под текущим пользователем

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 26 апр 2014, 23:26

В Open Server инициализация именно так и производится (при первом запуске модуля): initdb -E 'UTF-8' -U postgres -A trust. Так что ищите причину в другом.

Из того что мне приходит на ум - по умолчанию в Open Server прописан такой конфиг в файле авторизации PostgreSQL:

host all all 127.0.0.1/32 trust

т.е. разрешено подключение любого локального пользователя (с адреса 127.0.0.1). Возможно вы подключаетесь по сети с удалённого адреса, т.е. вам нужно дописывать настройки по авторизации. Возможно дело в установленных доступах на самом кластере, но это уже сами смотрите, потом пожалуйста отпишитесь тут как решили вопрос. Больше ничего предположить не могу, с PostgreSQL знаком весьма косвенно.

Zike
Сообщения: 7
C нами: 2 года 7 мес

Непрочитанное сообщение Zike » 27 апр 2014, 07:18

там как раз прописано:
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust


Попробую удалить папку C:\OpenServer\userdata\PostgreSQL-9.3.4, может пересоздание базы поможет

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 27 апр 2014, 20:22

Как ваши успехи?

Zike
Сообщения: 7
C нами: 2 года 7 мес

Непрочитанное сообщение Zike » 28 апр 2014, 18:04

Вообщем есть 2 компьютера, на первом (Win 8.1) инициализировал модуль PostgreSQL и создал базу - работает нормально... Перенес папку OpenServer на второй компьютер (WinXP) сервер стартует, в логах Postgree выше описанная ошибка. PgAdmin ничего не видит (phppgadmin забыл глянуть)... удаление папки в userdata и переинициализация модуля ни чего не дало...Стало ясно, что что-то с компом или виндой, что подтвердилось экспериментом на третьем компе (Win7): база созданая на первом компе нормально работает на третьем причем в логах все та же ошибка видимо чисто информативная (PgAdmin и phppgadmin все видят).
Сервер работает в следующей конфигурации:
Apache-2.2.27
PHP-5.4.26
MySQL-5.5.37
PostgreSQL-9.3.4

Добавлено спустя 6 часов 57 минут 31 секунду:
Сейчас проверил работу phppgadmin на проблемном компьютере и он РАБОТАЕТ! Я не сразу заметил, что phppgadmin в Open Server есть, в меню выведен только pgAdmin. Т.е. проблема не в PostgreSQL, с ним все впорядке несмотря на ошибку в логах. Проблема в pgAdmin он не видел сервера и добавление сервера не помогало... после нескольких перезапусков и передергиваний настроек pgAdmin всеж увидел сервер.

Вопрос можно закрыть.

Вообще Open Server мне понравился, пользуюсь недавно, до этого пользовался Денвером но он плохо дружит с новыми операционками да и php 5.4 нет. Вот бы научиться свои модули в Open Server добавлять...

Анастасия
Сообщения: 2
C нами: 7 мес 4 дня

Непрочитанное сообщение Анастасия » 29 апр 2016, 20:51

подскажите, пожалуйста, решение, та же проблема:
FATAL: role "Администратор" does not exist

GeekHacker
Сообщения: 94
C нами: 1 год 3 мес

Непрочитанное сообщение GeekHacker » 30 апр 2016, 00:23

В общем, почему появляется это сообщение?
Вы работаете под системной учётной записью "Администратор", а в postgresql отсутствует такой пользователь.

В принципе, это ни на что не влияет. Вроде, не влияет. Я уже давно с этим экспериментировал. Но, если не ошибаюсь, всё будет работать и без создания этого пользователя.
Единственное, если вы используете консольные утилиты а-ля createdb,createuser,dropdb и тому подобное, то придётся явно указывать суперпользователя.
createdb -U postgres ...

А так они будут выполняться от пользователя "Администратор". Только его тоже нужно будет сделать суперпользователем.
Но лично я и так предпочитаю работать с консольными утилитами от пользователя postgres.

Но не суть важно.
В общем, чтоб избавиться от мозолящего глаза сообщения в логе и чтоб всё было по феншую, делаем следующее.
Открываем консоль и там выполняем:
createuser -U postgres --interactive --pwprompt Администратор

На предложение указать пароль вводим и подтверждаем пароль.
на вопрос делать ли юзера суперпользователем отвечаем "y" (одна буква и энтер).
И всё.

В принципе, пароль можно не задавать. В таком случае параметр "--pwprompt" можно опустить.

Перезагружаем сервер и наслаждаемся жизнью.

П.С. У вас "Администратор" написан кириллицей. Честно говоря, я не знаю могут ли в postgresql быть "кириллические пользователи".

GeekHacker
Сообщения: 94
C нами: 1 год 3 мес

Непрочитанное сообщение GeekHacker » 30 апр 2016, 01:15

Продолжение следует. Серия #2.

Лично у меня команда
createuser -U postgres --interactive --pwprompt Администратор

завершилась ошибкой. Какая-то ошибка последовательности символов для UTF-8. Т.е. таким образом пользователя кириллицей создать нельзя. Во всяком случае, у меня не получилось.

Но мне удалось это дело обойти.
Для этого я открыл psql под пользователем postgres
psql -U postgres

И там выполнил запрос
CREATE ROLE "Администратор" WITH PASSWORD '12345' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;

Таким способом пользователь создаётся без проблем.

Только теперь я не уверен будет ли его оно воспринимать нормально при запуске и пропадёт ли первоначальная ошибка. А то у меня он получился какой-то бесполезный.
Например, в той же консоли я его заюзать не смог
psql -U Администратор --dbname test

Выдаёт: Роль Администратор не существует.

В общем, экспериментируйте.

Анастасия
Сообщения: 2
C нами: 7 мес 4 дня

Непрочитанное сообщение Анастасия » 30 апр 2016, 10:55

спасибо большое!)

larry7
Сообщения: 2
C нами: 2 года 9 мес
Контакты:

Непрочитанное сообщение larry7 » 11 май 2016, 10:52

Пользуюсь Win7-64, установил последнюю сборку open-server возникла проблема с постресом
вроде как запускается но не работает! в логах писал (FATAL: role "USER" does not exist)

createuser -U postgres --interactive отработала нормально, благо имя пользователя было латиницей
и ошибка FATAL: role "USER" does not exist... пропала из лога постгреса.
phpinfo() показывает наличие PDO Driver for PostgreSQL
Однако по прежнему возникает ошибка при вызове функции
Call to undefined function pg_connect()
и вызов pgAdmin http://127.0.0.1/openserver/phppgadmin/index.php
дает сообщение Ваша инсталяция PHP не поддерживает PostgreSQL. Вам необходимо пересобрать PHP, используя параметр --with-pgsql для configure.

Переключение на другие версии постгреса не помогает
Впечатление что сборка php действительно сделана без pgsql


Вернуться в «Модули и инструменты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей