Если вы пытаетесь подключиться к серверу 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», это приведёт к тому, что клиент будет запрашивать пароль перед каждым подключением к СУБД. При таком способе ввода пароля, в истории введённых команд пароль не сохраняется.
Связанные статьи:
- Ошибка «ERROR 1044 (42000): Access denied for user 'mial'@'localhost' to database 'TestDB'». Не удаётся создать базу данных MySQL (РЕШЕНО) (100%)
- Ошибка при использовании выражений USE в MySQL (MariaDB): «ERROR 1044 (42000): Access denied for user» (РЕШЕНО) (100%)
- Почему «mysql -h» не показывает справку. Ошибка «option '-h' requires an argument» (РЕШЕНО) (100%)
- Ошибка «ERROR 1143 (42000)»: command denied to user for column in table в MySQL (MariaDB) (РЕШЕНО) (100%)
- Ошибка «ERROR 1142 (42000)»: command denied to user for table в MySQL (MariaDB) (РЕШЕНО) (100%)
- Почему TigerVNC при подключении показывает только чёрный экран (RANDOM - 5%)