Для установки PostgreSQL на GCE требуется пароль root для запуска sudo -u postgresql
. Это запрашивает пароль, который мне никогда не давали.
Как мне получить этот пароль или какой-либо другой способ запускать команды postgresql из оболочки?
Как запустить команду postgresql из оболочки GCE?
Ответы (3)
У вашего системного пользователя postgresql нет пароля (я утверждаю без доказательств... но я думаю, вы обнаружите, что это правда).
Обычно вы должны использовать такие команды:
# Test that YOU can use psql (as postgres) to run a query:
psql -U postgres -c 'select * from pg_catalog.pg_user;'
# Test an interactive session:
psql -U postgres my_database
my_database=# select 42 as the_answer;
# Create a new database
psql -U postgres my_database
my_database=# create database mydb;
В качестве альтернативы, вероятно, можно войти в систему следующим образом (обычно это):
sudo su postgres
И вы, вероятно, могли бы использовать это для запуска createdb. Но запускать psql от своего имени, наверное, лучше.
sudo su postgres
. Оттуда команды psql работают нормально.
- person Tal; 01.04.2014
Если вы хотите запускать команды на своем сервере postgresql, вам не нужно использовать sudo, просто используйте этот синтаксис для входа в интерактивную оболочку Postgresql:
psql -U username database_name
OR
psql -U username hostname database_name
Замените имя_пользователя на ваше имя пользователя postgresql, имя хоста (если оно не работает на том же сервере) на имя хоста сервера и имя_базы_данных на имя вашего база данных. Например:
psql -U postgressql customers
createdb
или команды createuser
, которую я пытаюсь запустить. Я запускаю psql -U postgres createdb mydb
и получаю Peer authentication failed for user "postgres"
- person Tal; 31.03.2014
Adding user postgres to group ssl-cert
. Должен признать, что я ничего не устанавливал после выдачи apt-get, но я уверен, что пользователь linux postgres
существует и что пользователь базы данных по умолчанию postgres
также создается автоматически. Теперь вопрос: если у вас нет возможности запустить su - postgres
, как можно выполнить команду createuser?
- person Tal; 31.03.2014
Обычно для sudo
требуется пароль вашей учетной записи пользователя. Итак, предполагая, что учетная запись, из которой вы запускаете команду, указана в файле sudoers
, пароль, который она вам запрашивает, должен быть вашим собственным. Вы пробовали это, в отличие от пароля root или postgresql, которого у вас, похоже, нет (или он может даже не быть установлен).
sudoers
, но у меня нет пароля для входа ни в мою учетную запись, ни в учетную запись root. Google регистрирует вас в поле GCE, используя корневые сертификаты вместо имени пользователя/пароля. Поэтому я не могу использовать
- person Tal; 01.04.2014
sudo -s
, чтобы получить корневую оболочку, или sudo su postgres
- person Doon; 01.04.2014