2015-01-29 4 views
18

Недавно я получил последнюю версию ubuntu, и я еще не привык к ней. У меня было несколько проблем, связанных с postgresql с pgadmin3.psql роковая роль не существует

Я попытался выполнить несколько руководств для создания локального сервера, который я могу использовать в pgadmin3. Я действительно не попал в цель, и я думаю, что я сделал это хуже, установив, деинсталлировав, установив, деинсталлировав, попробовав ответы, которые я нашел ... На данный момент я не уверен, что мои postgres чисты. Возможно, у меня есть два постгресса, еще раз, я не уверен. Я попытался удалить его, но у меня была ошибка, которая в основном говорила, что postgres не в sudo.

Дело в том, теперь у меня есть эта ошибка запуска PSQL в консоли:

$psql 
psql: FATAL: role "user" does not exist 

Я не могу найти pg_hba.conf и в этот момент я слишком напуган, чтобы сделать вещи еще хуже, пытаясь следуя любому другие сообщения.

Как я могу сделать эту работу?

+0

'pg_hba.conf' здесь не имеет значения. Вы пытаетесь установить соединение с именем пользователя 'user', но эта учетная запись/имя пользователя/роль не существует.Вам нужно указать существующего пользователя базы данных, используя переключатель '-U' при запуске' psql' –

+0

Поскольку сообщение об ошибке приходит из psql, вы уже подключены к СУБД, вам не нужно возиться с pg_hba.conf. Как говорится в сообщении: имя пользователя «пользователь» не существует. BTW: 'user' - ужасное имя для пользователя. Вы бы назвали своего ребенка «ребенком»? – joop

+1

Я не понимаю, но вместо пользователя это имя моей сессии, которая написана. Я попробую все это сегодня вечером. – whiplash

ответ

36

Как было отмечено в комментариях, ваша pg_hba.conf кажется прекрасным.

Обычно база данных будет работать как пользователь postgres (отметьте ps aux | grep postgres, чтобы узнать, что имя пользователя postgres работает под).

Войти как пользователь, например sudo su - postgres, а затем создать соответствующий пользователь ваша учетная запись обычного пользователя Ubuntu (createuser username), и, наконец, создать базу данных с таким же именем и установить владельца (-O) для этого пользователя базы данных, как это: createdb -O username username).

Это должно сделать работу psql, а pgadmin - пока вы начинаете ее как пользователь по умолчанию, имя пользователя - должно работать.

Редактировать: По умолчанию psql будет использовать ваше имя пользователя Linux в качестве значения по умолчанию для имени пользователя базы данных и имени базы данных. Вы можете переопределить имя пользователя, используя -U someotherusername, и подключиться к другой базе данных, добавив это имя БД в командную строку, например psql someotherdbname. Вы также можете найти psql -l, полезный для перечисления существующих баз данных.

+1

Вы дона Обязательно нужна база данных для этого пользователя. База данных может быть указана при запуске psql: 'psql db_name' –

+0

Я добавил изменение, чтобы уточнить это. Однако в большинстве случаев вам нужно будет вызывать 'psql' без параметров, чтобы« просто работать », так вот на что мой ответ был сфокусирован. – niko

+0

Привет, Спасибо за ваши ответы, – whiplash

5
sudo -u postgres createuser user 

может помочь вам создать нового пользователя со всеми привилегиями Postgres

0

В окнах 10 это работает для тонкой

pg_restore --format = с --verbose --no-владельца --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F: /MYBK.backup

- имя пользователя = (роль) и --no-пароль необходимы