MariaDB пользователь root

1

Добрый день,

Я вошел в mariadb с опцией пропустить таблицы предоставления. Затем я установил пароль для локального пользователя root. Затем я избавился от привилегий. Тем не менее, я все еще могу войти с помощью следующей команды.

mysql -uroot

Это моя версия MariaDb.

Версия сервера: 10.0.27-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Джон Абака
источник
Вы завершили процесс, который работает с --skip-grant-tables. На всякий случай завершите все процессы mysql / mariadb, перезапустите службу и попробуйте снова. Какого пользователя к вам запустить mysql -u root?
Даниил
Да. Когда я запрашиваю корневую запись в таблице mysql.user, столбец пароля имеет значение, но я все равно могу войти без него.
Джон Абака

Ответы:

2

Вы, очевидно, работаете mysql -urootпод rootсистемной учетной записью.

10.0.27-MariaDB-0ubuntu0.16.04.1это пакет, предоставленный Ubuntu. Недавно они переключились на аутентификацию сокетов Unix для локальной учетной записи root по умолчанию. Если вы бежите

MariaDB [(none)]> select user, host, password, plugin from mysql.user;

вы должны увидеть что-то вроде этого:

MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+------+-----------+-------------------------------------------+-------------+
| user | host      | password                                  | plugin      |
+------+-----------+-------------------------------------------+-------------+
| root | localhost | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 | unix_socket |
+------+-----------+-------------------------------------------+-------------+
1 row in set (0.00 sec)

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

elenst
источник