Jeden z moich klientów skontaktował się ze mną w sprawie problemu z serwerem połączonym między SQL Server a MySQL Server. Ponieważ pracuję głównie z SQL Server, instalowanie i łączenie MySQL Server było świetną zabawą. Podczas gdy próbowałem zasymulować problem i chciałem stworzyć połączony serwer. W tym blogu dowiemy się, jak naprawić błąd połączenia MySQL [MySQL][ODBC 5.3(w) Driver]Host „IP” nie może połączyć się z tym serwerem MySQL.
Zainstalowałem MySQL Server na serwerze i podałem hasło użytkownika root. Kiedy próbowałem połączyć się z MySQL Server za pomocą ODBC.
Zaraz po kliknięciu testu widzę poniżej błąd.
IP wymieniony w komunikacie o błędzie to IP klienta, który próbuje się połączyć. Wiadomość tekstowa jest następująca:
Połączenie nieudane
[MySQL][ODBC 5.3(w) Driver]Host „IP” nie może połączyć się z tym serwerem MySQL:
Nigdy nie widziałem tego błędu podczas pracy z SQL Server, więc nie miałem pojęcia o tym błędzie. Kiedy prowadziłem badania, dowiedziałem się poniżej.
Domyślnie MySQL nie zezwala klientom zdalnym na łączenie się z bazą danych MySQL.
Najszybszy sposób sprawdzenia tego jest taki, jak poniżej. Jeśli sprawdzimy tabelę mysql.user, pojawi się wpis dla użytkownika „root” z hostem „localhost”.
Więc musimy zapewnić uprawnienia do łączenia się z MySQL Server do klienta.
OBEJŚCIE/ROZWIĄZANIE
Najpierw upewnij się, że nie jest to problem z zaporą sieciową.
Jak omówiliśmy wcześniej, jest to problem z uprawnieniami. Następnie możemy udzielić pozwolenia za pomocą polecenia.
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';
W tym celu możesz również użyć MySQL Workbench. Poniższy zrzut ekranu przedstawia kroki, które należy wykonać. Tak samo jak polecenie, musimy podać nazwę użytkownika, hasło i adres IP na ekranie graficznym.
Mam nadzieję, że ten blog pomoże. Po powyższych zmianach, gdy próbujesz połączyć się z bazą danych mysql z tego zdalnego klienta (podaliśmy adres IP/nazwę hosta), nie powinieneś już otrzymywać komunikatu o błędzie „Host nie może połączyć się z tym serwerem MySQL”. Możemy również użyć %, aby zezwolić na wszystkie hosty, ale nie wolę tej opcji.
Nie jestem ekspertem MySQL, więc możesz skomentować i dać mi znać, czy są lepsze sposoby.