новая установка mariaDB 10.5.12 на debian 11 была усилена с помощью сценария «mysql_secure_installation», на вопрос «Переключиться на аутентификацию unix_socket [Y/n]» был дан ответ «да».
Теперь mariaDB позволяет локальному пользователю root входить в систему, когда host равен «localhost»:
mysql --host=локальный
Добро пожаловать в монитор MariaDB. Команды заканчиваются на ; или \г.
Ваш идентификатор подключения к MariaDB — 40.
Версия сервера: 10.5.12-MariaDB-0+deb11u1-log Debian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab и другие.
Введите «помощь»; или '\h' для помощи. Введите '\c', чтобы очистить текущий оператор ввода.
MariaDB [(нет)]>
но отклоняет, когда использовался IP-адрес:
mysql --host=127.0.0.1
ОШИБКА 1698 (28000): доступ запрещен для пользователя «root» @ «127.0.0.1»
после некоторой уточки в базе данных были проведены следующие модификации:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'::1' ИДЕНТИФИЦИРОВАННОГО ЧЕРЕЗ unix_socket;
ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА *.* 'root'@'::1' С ПРЕДОСТАВЛЕНИЕМ ОПЦИИ;
СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ 'root'@'127.0.0.1', ИДЕНТИФИЦИРОВАННОГО ЧЕРЕЗ unix_socket;
ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА *.* 'root'@'127.0.0.1' С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ;
сброс привилегий;
Параметр skip-name-resolve отсутствует в конфигурации сервера:
показывать переменные типа '%skip_name%';
+-------------------+-------+
| Имя_переменной | Значение |
+-------------------+-------+
| skip_name_resolve | ВЫКЛ |
+-------------------+-------+
соответствующие корневые учетные записи теперь:
MariaDB [mysql]> выберите пользователя, пароль, хост, плагин от пользователя, где пользователь = 'root';
+------+----------+------------+-------------+
| Пользователь | Пароль | Хост | плагин |
+------+----------+------------+-------------+
| корень | | локальный | unix_socket |
| корень | | ::1 | unix_socket |
| корень | | 127.0.0.1 | unix_socket |
+------+----------+------------+-------------+
По какой-то причине локальному root разрешен доступ к «localhost», но не доступ к базе данных ни при подключении через «127.0.0.1», ни при подключении через «:: 1».
Почему ?