Рейтинг:1

Доступ к mariaDB 10.5.12 запрещен для [email protected]

флаг ca
mpr

новая установка 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».

Почему ?

Рейтинг:1
флаг ar

Вкратце локальный хост рассматривается как использовать сокет. Этот ответ на StackOverflow объясняет это:

Сервер MariaDB (также MySQL) по-особому обращается с локальным хостом. Там, где другое программное обеспечение обрабатывает его как псевдоним петлевого адреса 127.0.0.1, MariaDB будет интерпретировать его как соединение доменного сокета UNIX с сервером. По умолчанию этот файл сокета находится в /var/lib/mysql/mysql.sock.

Поскольку вы не подключаетесь через сокет при использовании 127.0.0.1, аутентификация через сокет не работает. Вы должны либо использовать локальный хост или --socket=/путь/к/сокету.

флаг ca
mpr
поучительно, спасибо за объяснение выше. Но ... "ОШИБКА 2002 (HY000): не удается подключиться к серверу MySQL на "127.0.0.1" (115)" сохраняется при начальной загрузке первого узла в кластере galera, так что... мне нужно изменить «galera_new_cluster», чтобы обойти это?
vidarlo avatar
флаг ar
Скажите galera подключиться через сокет или перенастройте MySQL, чтобы он соответствовал тому, как вы собираетесь его использовать.
vidarlo avatar
флаг ar
В качестве примечания *спросите* о том, чего вы [хотите достичь, а не о том, как, по вашему мнению, вы этого добьетесь] (https://xyproblem.info/). Вашей целью было подключить Galera к MySQL. Но вы спросили, почему `localhost` обрабатывается не так, как `127.0.0.1`, поэтому вы получили ответ, который на самом деле не помог вам решить *настоящую* проблему.
флаг ca
mpr
Да: согласен с тобой, @vidarlo. На момент создания вопроса это была ошибка или неправильная конфигурация в моем понимании. Оказалось, что различная обработка localhost и 127.0.0.1 является особенностью maria/mysql, поэтому необходим обходной путь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.