2013-06-06 20 views
8

Mam serwer MySQL 5.5.32 działający w systemie Ubuntu 12.04. Ubuntu jest uruchamiany na maszynie wirtualnej. Platformą hostingową jest Windows 7. Jak mogę połączyć się z MySQL systemu Ubuntu z Windows?Jak połączyć się z serwerem MySQL działającym na maszynie wirtualnej

Zrobiłem następujące pory:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 

FLUSH PRIVILEGES; 

Prowadzenie show grant for root; wyświetlacze to:

+-------------------------------------------------------------+ 
| Grants for [email protected]%           | 
+-------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION | 
+-------------------------------------------------------------+ 

Ale gdy próbuję połączyć się z tym serwerem z SQLyog działa na Windows, otrzymuję błąd Error 2003 Cannot connect to mysql server on '192.168.xxx.xxx'.

Adres IP przesyłany do SQLYog, otrzymałem go od ifconfig. Dostarczony adres dodatkowy.

inet addr:192.168.226.xxx Bcast:192.168.226.yyy 

Czy używany adres jest niepoprawny, czy są to problemy z przyznaniem dotacji? Proszę o poradę.

+0

Czy możesz pingować swoją maszynę wirtualną z hosta? –

+0

@fliespl oops ... nie .. Nie mogę. Jakieś sugestie, jak mogę to zrobić? –

+0

Proszę najpierw wypróbować moją odpowiedź (zmień adres mysql). –

Odpowiedz

14

Problem polega na tym, że (prawdopodobnie) twój mysql jest powiązany z 127.0.0.1 zamiast 0.0.0.0.

należy zmienić wiążą w /etc/mysql/my.cnf do 0.0.0.0

bind-address = 0.0.0.0

a następnie ponownie uruchom mysql oczywiście.

+0

Czy ktoś mógłby wyjaśnić, dlaczego to rozwiązuje problem? –

+0

Powiązanie z 127.0.0.1 zezwala na połączenia tylko z localhost, a 0.0.0.0 z "dowolnego hosta". –

+2

Ja sam musiałem szukać go w '/ etc/mysql/mysql.conf.d /' z wersją 5.6.31 na Ubuntu. – ZbyszekKr

0

Błąd nr 2003: Nie można połączyć się z serwerem MySQL na „192.168.xx”

oznacza po prostu, że połączenie nie jest możliwe dla jednego z następujących (lub podobnych) powodów:

  • Nie ma serwera MySQL działającego pod określonym hostem.

  • Połączenie z serwerem MySQL nie jest dozwolone przy użyciu protokołu TCP-IP. Sprawdź ustawienie 'skip-networking' w pliku konfiguracyjnym MySQL (my.ini w systemie Windows, my.cnf w systemie Unix/Linux). Zostanie to skomentowane tak, jak "# skip-networking". Jeśli nie jest to skomentowane, zrób to i zrestartuj serwer MySQL, aby zmiana zaczęła obowiązywać. SQLyog musi łączyć się przy użyciu protokołu TCP-IP.

  • Upewnij się, że jesteś w stanie połączyć się z portem MySQL za pomocą programu telnet

    C: \ telnet hosta/port IP_address

1

Komunikat o błędzie Error No. 2003: Can't connect to MySQL server on 'localhost' (or some other host)

po prostu oznacza, że ​​połączenie jest nie jest możliwe z jednego z następujących (lub podobnych) powodów:

  • Nie ma serwera MySQL działającego pod określonym hostem.

  • Połączenie z serwerem MySQL nie jest dozwolone przy użyciu protokołu TCP-IP. Sprawdź ustawienie 'skip-networking' w pliku konfiguracyjnym MySQL (my.ini w systemie Windows, my.cnf w systemie Unix/Linux).Zostanie to skomentowane tak, jak "# skip-networking". Jeśli nie jest to skomentowane, zrób to i zrestartuj serwer MySQL, aby zmiana zaczęła obowiązywać. SQLyog musi łączyć się przy użyciu protokołu TCP-IP.

  • Niektóre problemy z siecią uniemożliwiają połączenie. Może to być błędna konfiguracja sieci lub problem z zaporą sieciową. Czasami doświadczyliśmy, że niektóre ściany ogniowe blokują połączenia TCP-IP, nawet jeśli twierdzi, że są wyłączone. Najczęściej pomaga to w odinstalowaniu i ponownym zainstalowaniu zapory.

  • Podczas próby połączenia z serwerem MySQL u dostawcy usług internetowych ten komunikat o błędzie często wskazuje, że bezpośrednie połączenie z MySQL zostało zablokowane. Aby połączyć się, musisz użyć tunelu HTTP lub tunelu SSH.

1

Myślę, że problem jest z ustawieniach karty sieciowej w ustawieniach VM

Czy tak w ustawieniach VM.

VM Ustawienia -> Ustawienia karty sieciowej -> Wybierz Bridged

VM będzie podłączyć do sieci fizycznej, gdy połączenie sieciowe jest na trybie mostkowym.

Spróbuj wysłać polecenie ping do hosta maszyny wirtualnej na komputerze z systemem Windows po zmianie połączenia sieciowego na z mostkiem.

Jeśli maszyna wirtualna wysyła polecenie ping do komputera z systemem Windows, będzie działać.

1

W nowszych wersjach MySQL, zamiast skip-networking domyślny jest teraz słuchać tylko na localhost bind-address = 127.0.0.1

Więc trzeba dodać swój adres IP urządzenia lub po prostu tutaj, aby go komentować jeśli nie martwisz się o kwestie bezpieczeństwa.

Powiązane problemy