Не удается запустить команды mysql от имени пользователя root Linux

#mysql #root #sudo

#mysql #root #sudo

Вопрос:

Как пользователь root Linux:

root@local:~# mysql

ОШИБКА 1045 (28000): доступ запрещен для пользователя ‘root’ @ ‘localhost’ (с использованием пароля: НЕТ)

Я в замешательстве. Разве пользователь root не должен иметь возможность работать mysql без дополнительной аутентификации? Как мне это исправить?

Комментарии:

1. Если вы запускаете только mysql пользователя root, он должен быть без пароля

2. Как насчет mysql -u root -p ? Запрашивает ли он пароль?

3. Конечно, он запрашивает пароль, если я указываю пользователя mysql, но я не хочу вводить пароль, я хочу запускать команды mysql от имени пользователя Linux root без пароля.

4. Это или это работает для вас?

5. Нет, эти ответы по-прежнему требуют паролей тем или иным способом

Ответ №1:

У вашей учетной записи root в MySQL есть пароль. Попробуйте это

 mysql -p
 

и введите пароль, который вы или кто-то установил.

Если это не сработает, попробуйте

 mysql -h localhost -u root -p
 

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

Комментарии:

1. mysql -p требуется, чтобы учетная запись root Linux могла запускаться mysql без предоставления пароля. В чем моя проблема.

2. @Dan ваша проблема в том, что у вашего пользователя root есть пароль, и вы хотите войти в систему без него. Это невозможно

Ответ №2:

Если у пользователя MySQL root есть пароль, используя плагин аутентификации по умолчанию, вы должны предоставить пароль для подключения, полная остановка. Вы можете настроить учетную запись без пароля, но вам следует избегать этой привычки.

Вы можете ввести пароль любым из следующих способов:

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

Комментарии:

1. Как насчет auth_socket?

2. Это сработает, если вы создадите пользователя root для аутентификации с помощью плагина auth_socket (пример: CREATE USER 'root'@'localhost' IDENTIFIED WITH auth_socket ), но если пользователь root был создан обычным способом, то есть аутентифицируется с помощью пароля, тогда auth_socket не будет работать.

3. Я не понимаю, как на последнем сервере, который я настроил, по умолчанию был настроен auth_socket, а на этом новом — нет. Я пытаюсь написать сценарий установки для инициализации базы данных mysql, и я хочу запускать команды mysql. Мне либо нужно использовать auth_socket (по-видимому, не по умолчанию), либо иметь возможность указать пароль root в скрипте bash (-p, похоже, не работает, он запрашивает пароль, даже если вы указываете значение).

4. Обратите внимание, что для ввода значения пароля в командной строке требуется, чтобы между -p и паролем не было пробела. То -p password есть неверно, он будет интерпретировать пароль как следующий аргумент. Вы должны указать это как -ppassword .

5. Я понятия не имею, кто настроил ваш последний сервер или какая это была версия. Возможно, это был MariaDB? MariaDB — это не MySQL. Они меняют множество функций, и одна из них заключается в том, что пользователь root создан для использования auth_socket по умолчанию, см. mariadb.com/kb/en/authentication-plugins

Ответ №3:

ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;