история. Выполняю скрипт на удалённой машине
/bin/bash /tmp/psqlenv.sh visyond RYETRRP6
Warning: Permanently added '138.197.107.221' (ECDSA) to the list of known hosts.
+ USER=visyond
+ DB=visyond
+ PASS=RYETRRP6
+ sudo -u postgres psql -c 'CREATE USER visyond PASSWORD '\''RYETRRP6'\'';'
+ sudo -u postgres psql -c 'ALTER USER visyond WITH ENCRYPTED PASSWORD '\''RYETRRP6'\'';'
+ sudo -u postgres psql -c 'CREATE SCHEMA visyond;'
+ sudo -u postgres psql -c 'DROP DATABASE visyond;'
ERROR: database "visyond" does not exist
CREATE ROLE
ALTER ROLE
CREATE SCHEMA
То есть мы видим в начале создание юзера, и на всякий случай установка пароля отдельной командой.
Но вот когда я пытаюсь с этими данными ломиться в постгре, получаю отлуп, что пароль не верен для юзера свежесозданного.
Заметил ещё одну странность. Выводится в консоль не всё что запускает скрипт, потому что целиком он выглядит так: #!/bin/bash set -xe USER=$1 DB=$1 PASS=$2 sudo -u postgres psql -c "CREATE USER ${USER} PASSWORD '${PASS}';" sudo -u postgres psql -c "ALTER USER ${USER} WITH ENCRYPTED PASSWORD '${PASS}';" sudo -u postgres psql -c "CREATE SCHEMA ${DB};" sudo -u postgres psql -c "DROP DATABASE ${DB};" sudo -u postgres psql -c "CREATE DATABASE ${DB};" sudo -u postgres psql -c "GRANT ALL ON SCHEMA ${DB} TO ${USER}" sudo -u postgres psql -c "GRANT ALL ON ALL TABLES IN SCHEMA ${DB} TO ${USER}" Но вывод резульатов работы скрипта обрывается на CREATE SCHEMA, то есть на команде sudo -u postgres psql -c "CREATE SCHEMA ${DB};" как-будто всё кончается, хотя в скрипте ещё остаётся 4-ре команды.
Обсуждают сегодня