2013-03-23 2 views
11

Я на сервере ubuntu 12.04, и я пытаюсь установить postgresql. На данный момент я успешно установил его, но не смог его настроить. Мне нужно, чтобы создать роль, чтобы двигаться вперед, и я выполнил эту команду в терминале:не удалось создать пользователь postgres: роли «postgres» не существует

[email protected]: createuser -s -r postgres

и он сказал:

createuser: could not connect to database postgres: FATAL: role "root" does not exist

Хорошо, так что я сделал:

su - postgres

а затем снова попробовал

[email protected]: createuser -s -r postgres

и я получил ошибку

createuser: could not connect to database postgres: FATAL: role "postgres" does not exist

и я получаю ту же ошибку, когда я сделать

psql -d dbname

Его, как петли, я не смог создать роль postgres, потому что роль postgres еще не существует.

Как исправить это?

Postgres версия, кажется, 9.1.x и версии убунту 12,10

+0

Что такое вывод 'sudo pg_lsclusters'? –

+0

@ A.H. Команда 'pg_lsclusters' не найдена. Он попросил меня установить пакет 'postgresql-common'. Я пробовал делать это как пользователь root, и я получил ошибку. Он попытался удалить 'postgres-xc' и' dpkg: обработку ошибок postgres-xc (-remove): ', а затем выйти. – ktkaushik

ответ

9

Оказалось, что я установил postgres-xc и postgresql на мою машину. Мне пришлось полностью сбить postgres-xc. И это было немного сложно сделать, потому что всегда была ошибка --purge remove postgres-xc, и удаление не могло продолжаться.

Кажется, что есть какая-то ошибка в упаковке. (details on launchpad).

В конце концов, я закончил делать this, чтобы заставить его работать.

После этого я удалил postgresql и установил его обратно, чтобы он работал.

+0

У меня была аналогичная проблема. При удалении postgresql обязательно остановите все процессы postgres, удалите unix-пользователя 'postgres', а также удалите файлы блокировки в'/var/run/postgresql'. – osa

+0

@ Серый Оршанский за это. Я помню, что в конце концов я решил, что сделал то, что вы сказали. :) – ktkaushik

+1

postgres-xc явно испортил мою настройку postgres. Такое же исправление работало для меня! –

1

Read postgresql tutorial это не имеет значения, если это Ubuntu или другой Linux.

EDIT Перед созданием роли или чего-либо еще при новой установке вам необходимо создать кластер баз данных: создали ли вы его?

initdb -D /usr/local/pgsql/data 

Вы должны быть зарегистрированы, как пользователь postgres на Linux машине. Here больше информации.

+0

да. Я выполняю шаги, но я не могу создать пользователя. Роль 'postgres' не существует для создания роли' postgres'.Вот что меня смущает. Есть идеи ? – ktkaushik

+0

@Ladislav: Debian (и, следовательно, также Ubuntu) имеет собственные скрипты и соглашения для управления базами данных и кластерами PostgreSQL. Использование простых PG-команд принесет больше вреда, чем хорошо. Специально для неспециалистов. –

+0

@ A.H. не знаю о debian и ubuntu, я использую slackware. с 'initdb' вы не навредите своей установке, это для создания кластера баз данных. он будет создавать файлы в '/ usr/local/pgsql/data', если что-то пойдет не так, вы можете удалить его и перейти от начала. – 1ac0

Смежные вопросы