zaLinux.ru

Почему MySQL (MariaDB) запрашивает пароль, даже если он указан с опцией «-p» (РЕШЕНО)


Если вы пытаетесь подключиться к серверу MySQL (MariaDB) в командной строке, то, возможно, вы столкнулись с проблемой, что клиент MySQL (MariaDB) не видит пароль.

Например, при подключении к MariaDB с помощью команды (где «USER» это действительное имя пользователя, а «PASSWORD» это пароль):

mariadb -u USER -p PASSWORD

Вместо ожидаемого подключения запрашивается пароль:

Enter password:

Если просто нажать Enter, то будет получено сообщение об ошибке:

ERROR 1045 (28000): Access denied for user 'USER'@'localhost' (using password: YES)

Причина ошибки в том, что значение опций неправильно трактуется в команде вида:

mariadb -u USER -p PASSWORD

В этой команде «PASSWORD» понимается как имя базы данных, которую необходимо использовать после подключения. Что касается опции «-p», то она трактуется как «подключиться с использованием пароля», но поскольку пароль после неё не указан, то этот пароль запрашивается для подключения к серверу MySQL (MariaDB).

Выход из этой ситуацией есть — пароль действительно можно указать в строке команды так, что клиент MySQL (MariaDB) правильно его истолкует и выполнит подключение. Но прежде чем перейти к примеру правильных команд для подключения к MySQL (MariaDB), необходимо отметить, что указывать пароли в строке команды — это плохая практика. Дело в том, что оболочки по умолчанию сохраняют историю команд. Если кто-либо получит доступ к истории запускаемых вами команд, то ваш пароль от MySQL (MariaDB) сервера будет скомпрометирован.


Если я вас не убедил и вы хотите указывать пароль в строке команды, то это можно сделать двумя способами.

Если вы предпочитаете опцию «-p», то укажите пароль после неё, но не разделяйте его пробелом от опции. Кстати, другие значения сокращённых опций также можно писать без пробела с их значениями:

mariadb -uUSER -pPASSWORD

Другой способ указать пароль — это использование длинного варианта написания опции «--password», после которой необходимо поставить знак равно и указать пароль:

mariadb -uUSER --password=PASSWORD

Обратите внимание, что между именем опции, знаком равно и паролем не должно быть пробелов.

Итак, в строке команды подключения к MySQL (MariaDB) можно указать пароль, но это не рекомендуется делать.

Рекомендуется вместо пароля указывать только опцию «-p», это приведёт к тому, что клиент будет запрашивать пароль перед каждым подключением к СУБД. При таком способе ввода пароля, в истории введённых команд пароль не сохраняется.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *