2017-01-07 7 views
0

Я только что купил VPS и установил MariaDB на нем, вот -версия:
mysql Ver 15.1 Distrib 10.0.28-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2MariaDB не в состоянии избавиться от пустого пароля

Так вот в чем дело. Я хочу изменить пароль пользователя root для моего подключения к MySQL. Я пробовал почти все руководства в Интернете, но я все еще могу напрямую подключиться к базе данных с помощью команды mysql без указания root или пароля. Я пытаюсь все как пользователь оболочки root, если это вызывает беспокойство.

Я установил столбцы authentication_string и password, используя метод PASSWORD(), и я подтверждаю, что теперь они имеют зашифрованные значения. Я перезапустил службу MySQL, используя service mysql restart, но все равно напрасно. Мой порт для MySQL по умолчанию равен 3306.
Что мне здесь не хватает? ТИА.
(Пожалуйста, не отмечайте это как дубликат, я прошел через почти все сообщения и пробовал решения, мне просто нужно получить более глубокое понимание здесь)

ответ

2

Вы, очевидно, используете пакеты MariaDB 10.0, предоставленные Debian. Недавно Debian переключился на использование аутентификации unix_socket по умолчанию для локального корня в своих пакетах. Вы можете увидеть это, запустив

SELECT user, host, password, plugin FROM mysql.user; 

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

UPDATE mysql.user SET plugin = '' WHERE user = 'root'; 
FLUSH PRIVILEGES; 
+0

Ты ангел! Я буквально потратил 3 часа, чтобы заставить это работать, пока я не сдался! Быстрый вопрос, можно ли включить аутентификацию? –

+1

Это зависит от того, что именно вы имеете в виду. Очевидно, что аутентификация настроена для каждого пользователя - вы можете иметь локальный «root», прошедший проверку подлинности через плагин 'unix_socket', и создать другого суперпользователя, который будет иметь обычный доступ на основе пароля. Если вы имеете в виду, можно ли настроить 'unix_socket' для возврата к паролю, если первоначальная проверка подлинности не удалась - нет, в настоящее время это невозможно. Вы также можете изучить [аутентификацию pam] (https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/) - сложнее настроить, но если вы пройдете через него, это может дать вы больше гибкости. – elenst

+0

Спасибо, мне нравится новая идея пользователя, и я думаю, что мне нужна вся гибкость :) –