Ошибка PSQL при использовании с именем пользователя, содержащим в (@) и с использованием URL - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь подключиться к моему серверу PostgreSQL 11.3 с помощью CLI (psql). У меня есть требование установить пароль в командной строке (нельзя использовать переменную окружения PGPASSWORD). Я пытаюсь использовать URL для доступа к базе данных, как это:

psql postgresql://username@server:password@server.full.name:5432/db_name

Как видите, мой логин содержит в себе (@), например, мое имя пользователя: username@server.

Я получаю ошибку:

psql: Invalid port number: "password@server.full.name:5432/db_name"

Я полагаю, что psql CLI сначала анализирует в (@) как разделитель между именем пользователя и именем сервера. Это ошибка PSI CLI?

Как я могу передать такое имя пользователя (содержащее @) в URL, чтобы правильно запустить psql?

Спасибо!

Обновление 1:

Мой коллега предложил использовать %40 вместо двоеточия : между логином и паролем, например:

psql postgresql://username@server%40password@server.full.name:5432/db_name

Но это никак не влияет (я использую Windows 10, cmd.exe)

1 Ответ

0 голосов
/ 28 июня 2019

После некоторых исследований я нашел решение (в интересах других):

psql postgresql://username%40server:password@server.full.name:5432/db_name

Если вы запускаете его из файла cmd или bat, маскируйте знак процента (%)как это:

psql postgresql://username%%40server:password@server.full.name:5432/db_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...