Debian 9,MariaDB,root,phpMyAdmin.

Совсем не давно я собирал классический такой LAMP сервер на debian 9. Установил для администрирования SQL phpMyAdmin. И тут оказалось что в MariaDB 10.01.21 по умолчанию для пользователя root метод подключения через сокет( unix_socket ).

То есть вы можете спокойно выполнить команду без пароля : mysql -u root и войти в sql с любым паролем или даже пустым( конечно если вы выполняете эту команду от лица root). Я не смог зайти как root в phpMyAdmin . Что бы решить эту проблему есть несколько решений, самый простой и безопасный создать нового пользователя с привилегиями root.

mysql -u root
CREATE USER 'test'@'localhost' IDENTIFIED BY 'ваш_пароль';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
FLUSH PRIVILEGES;
exit

То есть мы создали пользователя test , дали ему все привилегии, обновили данные и вышли из sql.

Более координатный метод это отключить авторизацию по сокет для root и задать ему пароль.

mysql -u root
use mysql
UPDATE user SET Password = PASSWORD('ваш_пароль') WHERE User ='root';
UPDATE user SET plugin = '' WHERE User = 'root';
FLUSH PRIVILEGES;
exit

Вернуть все обратно :

mysql -u root
use mysql
UPDATE user SET plugin = 'unix_socket' WHERE User = 'root';
FLUSH PRIVILEGES;
exit