Похож на пароль, установлен на 'root'@'localhost'
пользовательская запись, но не на 'root'@'%'
запись; аутентификация без паролей была бы позволена на основе этого.
В целях безопасности пересмотрите предоставляющий корневой доступ отовсюду. Если Вам действительно нужен он, то просто избавляются от localhost спецификаций:
drop user 'root'@'localhost';
drop user 'root'@'127.0.0.1';
drop user 'root'@'::1';
И набор пароль для 'root'@'%'
пользователь:
set password for 'root'@'%' = password('passwordhere');
Ну, ответ является правильным в той таблице - необходимо удалить "корневые" строки, которые не имеют никакого перечисленного пароля.
Кроме того, похож на Вас, позволяют соединения откуда-либо (?!?!) не используя пользователя или передачи. Вероятно, плохая идея. Я сделал бы что-то как:
mysql> use mysql;
mysql> delete from user where password = "";