Mysql перенаправить трафик на другой сервер - PullRequest
0 голосов
/ 16 января 2019

возможно ли перенаправить весь запрос mysql на другой сервер?

У меня есть много приложений на разных серверах, которые взаимодействуют с одной базой данных (Windows-машиной).

Для передачи базы данных (на сервер linux) без изменения какого-либо IP-адреса во многих многих php-файлах (есть много вещей, которые я не знаю, потому что это не мое творение, а мое наследие), есть что-то, что я могу сделать? Прокси? Переадресация порта?

1 Ответ

0 голосов
/ 16 января 2019

Afaik, реализации mysql не предлагают эту функциональность, однако вы можете "прокси" подключаться через ssh-туннель, например так:

ssh -N ssh-user@host.domain -L 3306:127.0.0.1:3306

Для этого требуется ssh-сервер на хосте, который обслуживает mysql (на порту 3306), и у вас есть ssh-доступ к этой машине. Вы запускаете команду на той машине, с которой работает ваш php, затем вы можете, пока она работает, получить доступ к хосту mysql на «localhost». Все запросы будут безопасно переданы на удаленный сервер MySQL.

Ключ -L инструктирует ssh пересылать соединения tcp через локальный порт 3306 на порт 3306 на машине, к которой вы подключаетесь.

Ключ -N указывает ssh сделать это и не запускать команду.

Если вы добавите ключ -f, команда немедленно перейдет в фоновый режим, что может быть полезно для этого варианта использования.

Вы, вероятно, также хотите использовать ssh без пароля

Однако, это, вероятно, не чистое решение для производства. Я использую этот метод только для целей разработки, и я бы посоветовал вам исправить свою кодовую базу в долгосрочной перспективе (то есть поместить конфигурацию mysql в центральное место).

...