Я работал с несколькими удаленными серверами, и мне надоела задержка пересылки вызовов MySQL через туннель ssh (-l 3306: localhost: 3306), поэтому я хотел найти способ быстро и легко клонировать удаленный (live ) database моей локальной машине разработчика, но большинство онлайн-ресурсов было с одного ssh-совместимого сервера на другой, а не то, что я хотел, клонировать удаленную базу данных на машину, с которой я подключаюсь.
Как клонировать удаленную базу данных mysql на локальную машину разработки?
Ответы (1)
Подключитесь со своей машины разработчика с удаленным портом и перенаправьте его на локальный порт MySQL, по умолчанию 3306.
ssh server.address.com -R 3307:localhost:3306
Затем на сервере, оттуда, вы можете войти в базу данных удаленного сервера со значением по умолчанию.
mysql
команда. Или оттуда войдите в вашу локальную базу данных разработчиков,
mysql --host=127.0.0.1 --port=3307
Затем это туннелирует порт 3307 с удаленного сервера на ваш локальный порт 3306 из указанного выше туннеля ssh.
Из-за этого вы можете напрямую запустить команду mysqldump в своей локальной базе данных mysql.
mysqldump --all-databases | mysql --host=127.0.0.1 --port=3307
Первая часть выгружает все базы данных, которые она может, в stout, но вы напрямую подключаете это к своей локальной базе данных с помощью второй половины команды.
** К вашему сведению, я пропустил всю информацию для входа в систему, чтобы все команды были максимально простыми, а также пытаюсь объяснить каждый бит как можно лучше, но для реальной работы я использую прямую
ssh server.address.com -R 3307:localhost:3306 'mysqldump --all-databases -uroot | mysql --host=127.0.0.1 --port=3307 -uroot'
команда.
Для меня это самый простой, быстрый и лучший способ клонировать вашу действующую базу данных локально для разработки.