Я слежу за этим сообщением в блоге http://hendrelouw73.wordpress.com/2012/11/14/how-to-install-postgresql-9-1-on-ubuntu-12-10-linux / для установки postgres на Ubuntu. Это шаги два и три.
STEP 2: INSTALL POSTGRESQL ON YOUR SYSTEM
sudo apt-get update
sudo apt-get install postgresql-9.1
STEP 3: CONFIGURE YOUR POSTGRESQL PASSWORD
sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';
Однако, я также смотрю на RailsCast, который устанавливает postgres на Ubuntu. Во-первых, Райан Бейтс делает это
root@li349-144:~# apt-get install postgresql libpq-dev
, а затем устанавливает пароль, подобный этому корню @ li349-144: ~ # sudo -u postgres psql
terminal
postgres=# \password
Enter new password:
Enter it again:
Итак, одно большое отличие в том, как сконфигурирован пароль, в том, что Railscast не затрагивает что-то под названием template
, описанное в шаге 3 блога
Рассматривая инструкции по установке postgres на ubuntu https: // help. ubuntu.com/community/PostgreSQL, он похож на Railscasts в том, что у него нет этой ссылки на template
для создания пользователя
Можете ли вы объяснить разницу и нужно ли мне сделать этот шаг? ШАГ 3: НАСТРОЙТЕ ПАРОЛЬ POSTGRESQL
sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';
Нет реальной разницы между этими двумя методами. Роли пользователя / логина и пароли хранятся на всем сервере, а не на всей базе данных. Другими словами, пароль предназначен для подключения к серверу, поэтому не имеет значения, к какой базе данных вы подключаетесь. Команда
sudo -u postgres psql template1
(спасибо Daniel Vérité за комментарий)
фактически говорит системе переключиться на пользовательские postgres и запустить клиент CLI (psql) подключиться к серверу и использовать базу данных «template1». Если имя пользователя и / или базы данных не указано, то psql пытается подключиться как текущий пользователь и «использовать» базу данных с тем же именем, что и текущий пользователь (в данном случае postgres - что делает параметр «template» излишним)
Это то, что вышеуказанная команда делает шаг за шагом:
sudo -u postgres
Это переключает пользователя postgres. Обратите внимание на отсутствие параметра -p в sudo. Это важно, потому что «пользователь user postgres» (у которого нет пароля, и его единственная цель - владеть запущенными процессами сервера) отличается от «пользователя базы данных postgres» (который является пользователем root или, скорее, администратором базы данных и абсолютно нужен пароль.)
psql --username=postgres --database=template1
Это соединяется с localhost, используя имя пользователя базы данных postgres и шаблон базы данных1.
Для вашей цели эта строка может быть сокращена до
sudo -u postgres psql
ALTER USER postgres with encrypted password 'your_password';
Это изменится на пользователя postgres и подключится к localhost как пользователь postgres к базе данных с именем postgres, а затем установить пароль.
Если вам нужны дополнительные разъяснения, пожалуйста, спросите. Я буду рад помочь.
Краткое примечание по шаблонным базам данных . При создании новой базы данных postgres использует шаблон с именем template1
. Это что-то вроде файла скелета, используемого для установки пользовательских настроек по умолчанию при создании учетных записей пользователей в Linux. Как правило, dba изменяет его, чтобы убедиться, что определенные инструменты и поведение применяются на всем сервере. Но почему 1
вы можете спросить. Ну, есть еще одна база данных шаблонов с именем template0
, и это защищенная «чистая копия» копии template1
на тот случай, если с ней что-то пойдет на юг. Здесь - вики-страница, описывающая такой сценарий.
Не делайте этого..
terminal
postgres=# \password
Enter new password:
Enter it again:
Вы включаете пользователя, которого Вы не должны включать. Вместо этого (копия моего ответа)
Это - копия моего исходного сообщения здесь
Существует два метода, которые Вы можете для конфигурирования. Оба требуют создания пользователя и базы данных.
Используя createuser и createdb,
$ sudo -u postgres createuser -s $USER
$ createdb mydatabase
$ psql -d mydatabase
Используя команды управления SQL, и соединяющийся с паролем по TCP
$ sudo -u postgres psql postgres
И, затем в оболочке psql
CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;
Затем можно войти в систему,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Если Вы не знаете порт, можно всегда получать его путем выполнения следующего, как postgres
пользователь,
SHOW port;
Или,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
postgres
пользовательЯ предлагаю не изменить postgres
пользователь.
postgres
. У Вас, как предполагается, есть корень для получения для аутентификации как postgres
.postgres
который является PostgreSQL, эквивалентным из SQL Server SA
, у Вас должен быть доступ для записи к базовым файлам данных. И, который означает, что Вы могли обычно разрушать опустошение так или иначе.