Zwykle zdalny dostęp do serwera bazy danych MySQL jest wyłączony ze względów bezpieczeństwa. Jednak od pewnego czasu trzeba zapewnić zdalny dostęp do serwera bazy danych MySQL z domu lub serwera WWW. Możesz wykonać następujące kroki, aby go włączyć.
Krok 1:Zaloguj się za pomocą SSH (jeśli serwer znajduje się poza środowiskiem lub intranetem)
Najpierw zaloguj się przez ssh do zdalnego serwera bazy danych MySQL z systemu Windows za pomocą PuTTy lub z systemu Linux za pomocą SSH
Krok 2:Edytuj plik my.cnf
Po połączeniu musisz edytować plik konfiguracyjny serwera MySQL my.cnf za pomocą edytora tekstu, takiego jak vi:
- W Debianie plik znajduje się w /etc/mysql/my.cnf lokalizacja.
- W systemie Red Hat Linux/Fedora/Centos Linux plik znajduje się w /etc/my.cnf lokalizacja.
Aby edytować /etc/my.cnf, uruchom:
# vi /etc/my.cnf
- W Windowsie , plik my.ini znajduje się w C:\Program Files\MySQL\MySQL Server X.Y (X.Y to numer wersji serwera MySQL)
W systemie Windows otwórz plik my.ini w notatniku
Krok 3:Po otwarciu pliku zlokalizuj wiersz o następującej treści
[mysqld]
Upewnij się, że pomijanie linii jest skomentowane (lub usuń linię) i dodaj następującą linię
bind-address=YOUR-SERVER-IP
Na przykład, jeśli twój adres IP serwera MySQL to 173.234.21.12, wtedy cały blok będzie wyglądał następująco:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 173.234.21.12 # skip-networking ....
Gdzie,
- adres powiązania :adres IP do powiązania.
- pomijanie sieci :W ogóle nie nasłuchuj połączeń TCP/IP. Wszelka interakcja z mysqld musi odbywać się za pośrednictwem gniazd uniksowych. Ta opcja jest wysoce zalecana w przypadku systemów, w których dozwolone są tylko żądania lokalne. Ponieważ musisz zezwolić na zdalne połączenie, ta linia powinna zostać usunięta z my.cnf lub skomentowana.
Krok 4:Zapisz i zamknij plik
W systemie Debian / Ubuntu Linux wpisz następujące polecenie, aby ponownie uruchomić serwer mysql:
# /etc/init.d/mysql restart
W RHEL / CentOS / Fedora / Scientific Linux wpisz następujące polecenie, aby ponownie uruchomić serwer mysql:
# /etc/init.d/mysqld restart
W systemie Windows otwórz wiersz poleceń jako Administrator i wpisz
net stop MySQL net start MySQL
Krok 5:Przyznaj dostęp do zdalnego adresu IP
Przyznaj dostęp do nowej bazy danych
Jeśli chcesz dodać nową bazę danych o nazwie foo dla paska użytkownika i zdalnego adresu IP 162.72.20.23, musisz wpisać następujące polecenia w mysql:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Przyznaj dostęp do istniejącej bazy danych
Załóżmy, że zawsze nawiązujesz połączenie ze zdalnego adresu IP o nazwie 162.72.20.23 do bazy danych o nazwie webdb dla użytkownika webadmin. Aby przyznać dostęp do tego adresu IP dla istniejącej bazy danych, wpisz następujące polecenie w wierszu polecenia mysql:
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Krok 6:Wyloguj się z MySQL
Wpisz polecenie exit, aby wylogować się z mysql:
mysql> exit
Krok 7:Otwórz port 3306
Przykładowa reguła iptables otwierająca zaporę sieciową iptables
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
LUB zezwalaj tylko na zdalne połączenie z serwera WWW znajdującego się pod adresem 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
LUB zezwalaj tylko na zdalne połączenie z podsieci LAN 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Na koniec zapisz wszystkie reguły (polecenie specyficzne dla RHEL / CentOS):
# service iptables save
W systemie Windows wybierz Panel sterowania> Zapora systemu Windows> Dodaj regułę ruchu przychodzącego dla portu 3306
Krok 8:Przetestuj zdalny dostęp do bazy danych MySQL
W systemie zdalnym lub na pulpicie wpisz następujące polecenie:
$ mysql -u webadmin –h 173.234.21.12 –p
W systemie Windows uruchom program wiersza poleceń MySQL i zaloguj się jako administrator, wpisując następujące polecenie z folderu głównego MySQL (np. Program Files\MySQL\MySQL Server 5.5\bin):
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p
Gdzie,