Подтвердить что ты не робот

Удаленный доступ к MySQL на Mac Mini/Time Capsule

В настоящее время я пытаюсь запустить приложение на сервере, но мой клиент очень "придирчив" к своим данным и хочет сохранить базу данных на собственном внутреннем офисном сервере. Я установил MySQL и могу заставить приложение запускаться локально, но по нескольким конкретным причинам приложение должно запускать еще где.

В основном я не могу получить доступ к MySQL из другого места. Я думаю, что моим основным камнем преткновения является перенаправление портов в правильное место. MySQL установлен на mac mini с локальным IP-адресом 192.168.1.242, а маршрутизатор/модем - это капсула времени Apple. Я пробовал смотреть учебники, но у всех есть опции, к которым у меня нет доступа. Я прикрепил скриншот параметров, к которым у меня есть доступ, и настройки, которые я пробовал до сих пор.

введите описание изображения здесь введите описание изображения здесь

Возможно, потребуется другая информация:

  • Мне нужно подключиться с PHP
  • Я установил пользователя в MySQL с помощью шаблона (%)
  • Я тестирую его, используя следующую команду: на моей локальной машине в CMD: mysql -u имя пользователя -h remote_ip_address -p
  • Я получаю следующую ошибку: ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL на "REMOTE_IP_ADDRESS" (10061)
  • Брандмауэр полностью отключен на Mac Mini
  • В файле my.cnf ничего нет.
  • ОС - Sierra

Это все, о чем я могу думать в данный момент, но любой совет будет очень благодарен, и может быть предоставлена ​​любая дополнительная информация.

PS. очевидно, я не очень хорошо разбираюсь в MAC-машинах/сетях

4b9b3361

Ответ 1

Для тех, кто читает это, у меня была очень конкретная проблема. Я установил MySQL с помощью homebrew. Homebrew связывает MySQL с 127.0.0.1, поэтому будет разрешать соединения с MySQL с одного и того же компьютера независимо от того, что вы пытаетесь сделать. Чтобы исправить это, мне пришлось отредактировать /usr/local/Cellar/mysql//homebrew.mxcl.mysql.plist и заменить --bind-address = 127.0.0.1 на bind-address = *.

Ответ 2

У MySQL есть внутренний брандмауэр пользователей/IP-адресов. Даже если вы можете подключаться локально, вы можете не иметь разрешения удаленно:

Попробуйте это как пользователь root на сервере MySQL (сначала сначала!)

 GRANT ALL ON <db>.* TO '<user>'@'<remoteIP>' IDENTIFIED BY '<password>';

Где

<db> - это имя DB

<user> - это имя, под которым вы подключаетесь

<remoteIP> - это внешний IP-адрес вашего офиса IP FROM, который вы пытаетесь подключить

<password> должен быть понятным!

Это лучше объяснит варианты