MariaDB установка без запроса пароля для root

Автор: | 03.07.2019

Недавно я тестировал сервер базы данных MariaDB в Debian 8/9 и обнаружил, что сервер базы данных теперь устанавливается в Debian, не запрашивая пароль у пользователя root для доступа к серверу.

MySQL и MariaDB, форк MySQL, запрашивали пароли каждый раз, прежде чем доступ будет предоставлен серверу. Видимо, больше не для MariaDB. Теперь простая установка базы данных дает рут-доступ без пароля.

Даже после запуска команды sudo mysql_secure_installation… пароль учетной записи root не требуется. Однако другие приложения и службы, зависящие от базы данных, не будут работать, если для аутентификации необходим пароль root.
phpMyAdmin и MySQL Workbench может перестать работать, если MariaDB настроен таким образом.

Я обнаружил, что MariaDB использует плагин unix_socket для аутентификации … а не пароли. Даже если вы установили пароль, он игнорируется. Чтобы снова включить проверку подлинности по паролю, выполните следующие действия:

Войдите на сервер MariaDB, выполнив следующие команды

sudo mysql -u root

Не запрашивает пароль?

После этого выполните команды ниже, чтобы отключить аутентификацию плагина для пользователя root

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

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

sudo mysql_secure_installation

Когда будет предложено, ответьте на вопросы ниже, следуя руководству.

  • Enter current password for root (enter for none): Just press Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

Теперь у вас есть возможность войти с аутентификацией по паролю .. и другие приложения теперь должны работать с аутентификацией по root паролю.

В дальнейшем следует использовать такую команду для входа

sudo mysql -u root -p

Затем введите пароль для входа

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 559
Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>