Mysql
 sql >> база данни >  >> RDS >> Mysql

Създайте SSH тунел за отдалечен достъп до MySQL

Това ръководство ще ви покаже как да направите защитена връзка с вашия отдалечен MySQL или MariaDB сървър от вашия локален компютър, като използвате SSH тунел . Това е полезно, ако искате да използвате административни инструменти на вашия локален компютър, за да работите на вашия сървър.

SSH тунелът е криптиран тунел, направен чрез връзка по SSH протокол. Можете да използвате SSH тунел за отдалечена комуникация с базата данни MySQL. След като следвате тези инструкции, ще можете да се свържете с localhost на вашата работна станция, като използвате любимия ви инструмент за управление на MySQL. Връзката ще бъде сигурно препратена към вашия Linode през интернет.

Забележка MariaDB е разклонение на MySQL и се счита за заместител на adrop-in. Въпреки че това ръководство се отнася до MySQL, то важи в еднаква степен и за MariaDB.

Предварителни условия

  • MySQL е инсталиран.
  • MySQL е конфигуриран да слуша на localhost (127.0.0.1). Това е активирано по подразбиране.

Как да получите достъп до MySQL отдалечен чрез създаване на SSH тунел с PuTTY

Този раздел ще ви покаже как да създадете SSH тунел към MySQL на Windows, като използвате инструмента PuTTY.

Настройка на тунела

Първо, трябва да установите основна връзка с вашия Linode:

  1. Изтеглете PuTTY.

  2. Запазете PuTTY на вашия работен плот.

  3. Щракнете двукратно върху файла PuTTY, за да започнете - няма нужда от инсталиране. Ще видите следния прозорец:

  4. Въведете името на хоста или IP адреса на вашия Linode в Име на хост (или IP адрес) поле.

  5. В лявото меню отидете на Връзка -> SSH -> Тунели .

  6. В Изходния порт поле, въведете 3306 .

  7. В Дестинация поле, въведете 127.0.0.1:3306 . Вижте окончателната конфигурация по-долу:

  8. Кликнете върху Отваряне за да стартирате SSH сесията.

  9. Ако не сте влизали в тази система с PuTTY преди, ще получите предупреждение, подобно на следното. Уверете се, че този сървър е този, с който искате да се свържете, след което щракнете върху Да :

    Забележка

    Това предупреждение се появява, защото PuTTY иска да проверите дали сървърът, в който влизате, е този, който казва. Малко вероятно е, но е възможно някой да подслушва връзката ви и да се представя за вашия Linode. За да потвърдите сървъра, сравнете отпечатъка на ключа, показан в предупреждението за PuTTY - низът от цифри и букви, започващи с ssh-rsa на изображението по-горе - с отпечатъка на публичния ключ на вашия Linode. За да получите пръстовия отпечатък на вашия Linode, влезте във вашия Linode чрез конзолата Lish (вижте Конзолата раздел в Linode Manager) и изпълнение на следната команда:

    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
    

    Ключовите пръстови отпечатъци трябва да съвпадат. След като щракнете върху Да , няма да получавате допълнителни предупреждения, освен ако ключът, представен на PuTTY, не се промени по някаква причина; обикновено това трябва да се случи само ако преинсталирате операционната система на отдалечения сървър. Ако получите това предупреждение отново за същия Linode, след като ключът вече е кеширан, не трябва да се доверявате на връзката и да разследвате нещата допълнително.

  10. Насочете вашия локален MySQL клиент към localhost:3306 . Вашата връзка с отдалечения MySQL сървър ще бъде криптирана чрез SSH, което ви позволява да осъществявате достъп до вашите бази данни, без да изпълнявате MySQL на публичен IP.

Създайте SSH тунел на Mac OS X или Linux

Този раздел ще ви покаже как да създадете SSH тунел към MySQL на Mac OS X или Linux.

  1. Инсталирайте MySQL клиент. Инсталирането на MySQL сървъра идва предварително опакован с инсталация на клиента. За да инсталирате само клиента:

    MacOS

    brew install --cask mysql-shell
    

    Ubuntu/Debian

    sudo apt install mysql-client
    
  2. Отворете командния ред и изпълнете следната команда, за да отворите SSH тунела.

    ssh [email protected] -L 3306:127.0.0.1:3306 -N
    

    Заменете <[email protected]> с вашето SSH потребителско име и името на хоста или IP адреса на вашия сървър. Дългият низ от числа в командата изброява локалния IP, локалния порт, отдалечения IP и отдалечения порт, разделени с двоеточия (: ).

    -L - свързва локален порт към отдалечения хост пост.-N - означава пренасочване на портове.

    Забележка

    Ако вече използвате локален MySQL сървър на вашата работна станция, използвайте различен локален порт (3307 е често срещан избор). Новата ви команда ще изглежда така:

    ssh [email protected] -L 3307:127.0.0.1:3306 -N
    
  3. Отворете нов прозорец на терминала. Насочете вашия локален MySQL клиент към 127.0.0.1:3306 с потребителското име и паролата на MySQL сървъра.

    MacOS

    mysqlsh --host=127.0.0.1 --port=3306 -u user -p
    

    Ubuntu/Debian

    mysql --host=127.0.0.1 --port=3306 -u user -p
    

    Вашата връзка с отдалечения MySQL сървър ще бъде криптирана чрез SSH, което ви позволява да осъществявате достъп до вашите бази данни, без да изпълнявате MySQL на публичен IP.

  4. Когато сте готови да затворите връзката, пуснете CTRL-C команда или затворете прозореца на командния ред. Това ще затвори SSH тунела.

Постоянни SSH връзки

Ако имате нужда от постоянен SSH тунел, помислете за използването на autossh. autossh стартира и следи SSH връзка и я рестартира, ако е необходимо.

Повече информация

Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.

  • Използване на PuTTY
  • Документация на MySQL
  • Документация на MariaDB
  • autossh

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да премахнете водещи и последващи знаци в MySQL

  2. Mysql:Изберете редове от таблица, които не са в друга

  3. Функция MySQL GREATEST() – Намерете най-големия аргумент в списък с аргументи

  4. Форматирайте числото до 2 знака след десетичната запетая

  5. Изтриване на редове с MySQL LEFT JOIN