Я пытаюсь заставить сервер MySQL (который находится внутри виртуальной машины) отвечать клиенту (который находится на хост-машине). Все методы возвращают то же самое:
Host '10.0.2.2' is not allowed to connect to this MySQL server
Я обеспечил правильную переадресацию портов. Я также заверил, что в my.cnf
У меня есть следующие строки:
skip-external-locking
bind-address = 0.0.0.0
Со мной это не сработало. Я также попробовал немного поиграть следующим образом:
bind-address = 10.0.2.2
Но у меня это тоже не сработало - сервер просто не запускался.
Есть идеи, где я ошибаюсь?
ОБНОВИТЬ. Я не проверял привилегии для root@%
как в Как изменить привилегии для уже созданного пользователя MySQL?
РЕШЕНО.
Локальный хост учетной записи root-only в подавляющем большинстве установок по умолчанию, уверены ли вы, что разрешили ему вход из другой системы? Из Справочное руководство по MySQL:
это означает, что в пользовательской таблице нет строки со значением Host, которое соответствует хосту клиента
Итак, нет %
или 10.0.2.2
в Host
колонка вообще. Проверьте свою текущую конфигурацию:
select user,host from mysql.user where user='root';
Вероятно, вы захотите создать новую корневую запись с тем же паролем, что и сейчас.
create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;