Назад | Перейти на главную страницу

Пароль администратора MariaDb не работает

Я только что установил MariaDb на свежем Ubuntu Gnome и запустил mysql_secure_installation после этого я установил приличный пароль администратора, удалил анонимного пользователя и т. д.

Впоследствии я заметил странное поведение с паролем администратора:

Это нормальное поведение, я что-то делаю не так или я как-то облажался с установкой?

Такое поведение кажется совместимым с включением плагин для проверка подлинности сокета для пользователя root, где MariaDB доверяет учетным данным операционной системы, полученным через сокет, и не полагается на пароль. Используя sudo или войдя в систему как root, вы можете подключиться к серверу базы данных как root, потому что вы root в ОС, но другие пользователи ОС не могут.

Вы можете удалить эту опцию с помощью:

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

и тогда вы получите ожидаемое поведение: любой пользователь, у которого есть пароль root MariaDB, должен иметь возможность войти в систему как root.

Альтернативой является создание другого пользователя, а не root, который также имеет полные права администратора, и использовать его вместо root для административных целей:

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

Ответ от HBruijn указал использовать

update user set plugin='' where User='root';

Однако это сломало для меня систему входа в систему, так как никто больше не мог войти в систему (независимо от того, используется ли правильный пароль или нет, и sudo или нет)

Чтобы заставить его работать, мне нужно было использовать это вместо этого:

update user set plugin="mysql_native_password" where User='root';