Назад | Перейти на главную страницу

Как разрешить удаленный доступ к MySQL с динамического IP-адреса?

Я пытался найти ответ, но не могу его найти.

Мне нужно получить удаленный доступ к экземпляру MySQL через локальную рабочую среду MySQL. Порт включен (как мне кажется). Я могу подключиться к нему через Telnet.

Все примеры, которые я вижу, говорят что-то вроде

GRANT ALL PRIVILEGES ON *.* TO USER-NAME@IP IDENTIFIED BY "PASSWORD";

Проблема в том, что я удаленно подключаюсь с динамического IP. Я получаю ошибку

Доступ запрещен для пользователя 'root'@'c-67-166-150-41.hsd1.ca.comcast.net' (с паролем: YES)

Как мне настроить его, чтобы я мог войти? У меня есть root-доступ к MySQL Workbench на удаленном компьютере, если я удаленно управляю им.

Спасибо

Было бы намного лучше, если бы вы использовали какой-то туннель для доступа к системе. Putty / SSH прекрасно предоставляет эту функцию.

Вы должны попробовать использовать "%" для части хоста. Что-то вроде:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

(Взято из Документация MySQL)

Убедитесь, что изменения вступили в силу правильно:

flush privileges

Я бы не рекомендовал открывать MySQL никому, кроме localhost. Но вы можете удаленно подключиться, если используете клиент, который обрабатывает SSH-туннелирование. Который MySQL Workbench не похоже.

Преимущества SSH-туннелирования заключаются в том, что вы можете обеспечить безопасность сервера, не открывая доступ к MySQL миру. Вы можете настроить SSH-туннелирование вручную, если хотите, но многие клиенты БД уже имеют эту возможность.

На Mac Продолжение Pro работает неплохо.

Это дает вам возможность выбрать соединение через SSH. В этой конфигурации вы вводите следующее:

  • Название: [любое имя для соединения, которое вы хотите]
  • Хост MySQL: 127.0.0.1 [который является локальным хостом для машины]
  • Имя пользователя: [имя пользователя db]
  • Пароль: [пароль базы данных]
  • База данных: [название базы данных или пустое поле, чтобы показать все, к чему у вас есть доступ]
  • Порт: 3306 [стандартный порт MySQL]

А теперь о SSH. Это на 100% та же информация, которую вы вводите при входе в сеанс SSH:

  • SSH-хост: [имя хоста или IP-адрес сервера]
  • Пользователь SSH: [имя пользователя SSH]
  • Пароль SSH: [пароль SSH]
  • Порт SSH: [оставьте поле стандартным, пустым]

И при этом, если вы действительно хотите иметь вход в MySQL на основе чистого IP-адреса, вам следует открыть сервер для доступа к удаленным клиентам, но также иметь брандмауэр во внешнем интерфейсе, который ограничивает доступ к MySQL на основе IP. .