Совсем не давно я собирал классический такой 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