Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Połącz się zdalnie z MySQL

To jest zaawansowany samouczek.Uważaj! Nie możemy zapewnić żadnej pomocy w tym procesie ani nie możemy pomóc w przypadku problemów z nim spowodowanych. Przed kontynuowaniem wykonaj kopię zapasową całego serwera!

Czasami może być przydatne włączenie zdalnych połączeń z MySQL. Pozwala to na bezpośrednie połączenie z MySQL na jednym z twoich serwerów z aplikacji lub klienta MySQL działającego w innym systemie.

Istnieją dwa różne sposoby zdalnego dostępu do MySQL:

  1. Korzystanie z tunelu SSH.
  2. Włączenie bezpośredniego dostępu do MySQL z systemów zdalnych.

Łączenie z MySQL za pomocą tunelu SSH

Korzystanie z tunelu SSH jest najłatwiejszą i najbezpieczniejszą opcją zdalnego dostępu do MySQL w celach programistycznych. Tunel SSH sprawi, że będzie wyglądało to tak, jakby MySQL działał w twoim lokalnym systemie. SSH robi to, otwierając lokalny port i bezproblemowo przesyłając całą komunikację przez ten port do MySQL działającego na twoim serwerze.

Aby utworzyć tunel SSH z systemu Mac lub Linux, możesz uruchomić polecenie SSH wiersza poleceń z -L aby włączyć przekierowanie portów lokalnych.

ssh -L localhost:2000:localhost:3306 serverpilot@SERVER_IP_ADDRESS

W powyższym przykładzie SSH otworzy port 2000 w systemie lokalnym, a następnie możesz komunikować się z MySQL, łącząc się z tym portem lokalnym. Na przykład możesz połączyć się za pomocą polecenia MySQL:

mysql --protocol=tcp --host=localhost --port=2000 --user=DB_USER_NAME -p
Nie opuszczaj --protocol=tcp lub MySQL może po cichu zignorować --host i --port opcje.

Możesz także tworzyć tunele SSH w systemie Windows za pomocą PuTTy, popularnego klienta Windows SSH.

Włączanie bezpośredniego dostępu do MySQL z systemów zdalnych

Ostrzeżenie! Zezwolenie na bezpośredni dostęp do MySQL zwiększa ryzyko ataku na Twój serwer. Ostrzeżenie! MySQL domyślnie nie używa bezpiecznych połączeń. Podręcznik MySQL zawiera więcej informacji na temat SSL z MySQL.

Krok 1:Skonfiguruj MySQL, aby nasłuchiwał na wszystkich interfejsach.

Domyślnie MySQL nasłuchuje tylko połączeń na localhost , więc pierwszym krokiem jest ponowne skonfigurowanie MySQL na serwerze bazy danych, aby nasłuchiwał na wszystkich interfejsach. Aby to zrobić, zaloguj się na swój serwer jako root .

Jeśli używasz serwera Ubuntu 16.04 lub 18.04, edytuj ten plik:

/etc/mysql/mysql.conf.d/mysqld.cnf

W przypadku serwerów 14.04 lub 12.04 edytuj ten plik:

/etc/mysql/my.cnf

Znajdź następujący wiersz w dowolnym pliku:

bind-address = 127.0.0.1

Zmień adres powiązania do 0.0.0.0 :

bind-address = 0.0.0.0

Zapisz ten plik, a następnie uruchom następujące polecenie jako root :

sudo service mysql restart

Krok 2:Otwórz port TCP 3306 w zaporze serwera.

Zapora skonfigurowana przez ServerPilot blokuje wszelki dostęp do MySQL spoza Twojego serwera. Musisz więc dostosować zaporę sieciową, aby umożliwić dostęp do MySQL.

Aby uzyskać dostęp do MySQL spoza serwera, zapoznaj się z naszym artykułem na temat dostosowywania zapory.

Dodatkowy krok dla EC2:Zezwól na port TCP 3306 w swoich grupach bezpieczeństwa.

Jeśli jest to serwer EC2, musisz również zezwolić na port 3306 w grupach zabezpieczeń serwera.

Skonfiguruj swoje aplikacje do korzystania ze zdalnego hosta.

Po skonfigurowaniu zdalnego serwera MySQL będziesz chciał skonfigurować swoje aplikacje, aby używały tego hosta do transakcji bazodanowych. Jest to zwykle konfigurowane w pliku konfiguracyjnym aplikacji, a jako przykład użyjemy WordPressa.

Otwórz plik wp-config.php aplikacji.

W tej linii:

define('DB_HOST', 'localhost');

Zmień „localhost” na adres IP zdalnego serwera MySQL lub pełną nazwę hosta. Adres IP będzie zazwyczaj szybszym i bardziej niezawodnym wyborem, ponieważ nie zależy od rozwiązania DNS.

Zapisz plik i wyjdź, i gotowe! Możesz teraz przetestować swoją aplikację, aby upewnić się, że działa poprawnie.


  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 i PHP:UTF-8 ze znakami cyrylicy

  2. Jak transponować wiersze tabeli mysql na kolumny?

  3. Wybierz 3 najnowsze rekordy, w których wartości jednej kolumny są różne

  4. Jak zgłosić błąd w funkcji MySQL

  5. JSON_PRETTY() – Formatuj dokumenty JSON dla łatwiejszej czytelności w MySQL