Zainstalowałem MySQL Community Edition 5.5 na moim komputerze lokalnym i chcę zezwalać na połączenia zdalne, aby móc łączyć się ze źródła zewnętrznego.
Jak mogę to zrobić?
Zainstalowałem MySQL Community Edition 5.5 na moim komputerze lokalnym i chcę zezwalać na połączenia zdalne, aby móc łączyć się ze źródła zewnętrznego.
Jak mogę to zrobić?
sudo mysql_secure_installation
. Do Twojej wiadomościOdpowiedzi:
Jest to domyślnie dozwolone w MySQL.
Domyślnie wyłączony jest
root
dostęp zdalny . Jeśli chcesz to włączyć, uruchom lokalnie to polecenie SQL:Następnie znajdź następujący wiersz i skomentuj go w swoim
my.cnf
pliku, który zwykle występuje/etc/mysql/my.cnf
w systemach Unix / OSX. W niektórych przypadkach lokalizacja pliku to /etc/mysql/mysql.conf.d/mysqld.cnf).Jeśli jest to system Windows, możesz go znaleźć w katalogu instalacyjnym MySQL, zwykle coś takiego,
C:\Program Files\MySQL\MySQL Server 5.5\
a nazwa pliku będziemy.ini
.Zmień linię
do
I zrestartuj serwer MySQL ( Unix / OSX i Windows ), aby zmiany odniosły skutek.
źródło
my.cnf
pliku i nie znajdująbind-address
w nim dyrektywy, zauważ, że w moim przypadku (MySQL wersja 14.14 na Ubuntu 16.04.2) lokalizacja pliku to/etc/mysql/mysql.conf.d/mysqld.cnf
Po wykonaniu powyższych czynności nadal nie mogłem zalogować się
root
zdalnie, ale Telnetting do portu3306
potwierdził, żeMySQL
akceptuje połączenia.Zacząłem patrzeć na użytkowników w MySQL i zauważyłem, że było wielu użytkowników root z różnymi hasłami.
Więc
MySQL
mogę ustawić wszystkie hasła do korzenia ponownie i mogłem wreszcie zalogować się zdalnie jakoroot
.źródło
update user set authentication_string=password('YOUR_PASSWORD') where user='root';
Z mojego doświadczenia wynika, że pod tą ścieżką można znaleźć plik konfiguracyjny
/etc/mysql/mysql.conf.d/mysqld.cnf
.(Przez jakiś czas walczyłem o znalezienie tej ścieżki)
źródło
sudo find /etc -iname 'mysql*.cnf'
W moim przypadku próbowałem połączyć się ze zdalnym serwerem mysql na cent OS. Po przejściu wielu rozwiązań (przyznanie wszystkich uprawnień, usunięcie powiązań ip, umożliwienie pracy w sieci) problem nadal nie został rozwiązany.
Jak się okazało, patrząc na różne rozwiązania, natknąłem się na iptables, co uświadomiło mi, że port 3306 mysql nie przyjmuje połączeń.
Oto krótka uwaga na temat sprawdzania i rozwiązywania tego problemu.
Mam nadzieję że to pomoże.
źródło
Wykonaj poniższe kroki, aby ustawić zdalny dostęp do symboli wieloznacznych dla użytkownika MySQL.
źródło
Jeśli proces serwera MySQL nasłuchuje tylko w wersji 127.0.0.1 lub :: 1, wówczas nie będzie można połączyć się zdalnie. Jeśli masz
bind-address
ustawienie w/etc/my.cnf
może to być przyczyną problemu.Będziesz także musiał dodać uprawnienia dla osób niebędących
localhost
użytkownikami.źródło
127.0.0.1
?Jeśli zainstalowałeś z
brew
niego MySQL, tak naprawdę domyślnie nasłuchuje tylko na lokalnym interfejsie. Aby to naprawić, musisz edytować/usr/local/etc/my.cnf
i zmienićbind-address
z127.0.0.1
na*
.Potem biegnij
brew services restart mysql
.źródło
Cały proces zdalnego logowania. Zdalne logowanie jest domyślnie wyłączone. Musisz otworzyć je ręcznie dla wszystkich adresów IP .. aby uzyskać dostęp do wszystkich adresów IP
Specyficzne Ip
następnie
Możesz sprawdzić swój Host użytkownika i hasło
Teraz twoim obowiązkiem jest to zmienić
Możesz to znaleźć na
jeśli go tam nie znajdziesz, spróbuj tego
skomentuj w tym
Następnie uruchom ponownie MySQL
Teraz korzystaj ze zdalnego logowania
źródło
Tylko do twojej wiadomości Wyciągnąłem włosy z tym problemem przez wiele godzin .. w końcu dzwonię do mojego dostawcy hostingu i stwierdziłem, że w moim przypadku za pomocą serwera w chmurze, że w panelu sterowania dla 1 i 1 mają dodatkową zaporę ogniową, którą musisz sklonować i dodać port 3306. Po dodaniu dostałem się prosto ..
źródło
Dla kogo potrzebuje, sprawdź, czy port zapory 3306 jest otwarty, jeśli usługa zapory jest uruchomiona.
źródło
Ten blog Jak skonfigurować serwer MySQL w sieci lokalnej będzie przydatny w konfiguracji
MySQL
od zeraźródło
A dla OS X ludzie są świadomi, że parametr bind-address jest zwykle ustawiony w uruchomionej liście, a nie w pliku my.ini. Więc w moim przypadku usunąłem
<string>--bind-address=127.0.0.1</string>
z/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.źródło
~/Library/LaunchAgents
Jeśli
mysqld
ma adres wiążą zestaw do pętli zwrotnej / adresu lokalnego (na przykład127.0.0.1
), serwer nie jest osiągalny z zdalnych komputerów, ponieważ interfejs ten nie może być osiągnięte z każdego zdalnego komputera.Ustaw tę opcję na
0.0.0.0
(::
dla IPv4 + 6), aby akceptować połączenia z dowolnego hosta, lub na inny dostępny z zewnątrz adres, jeśli chcesz zezwolić na połączenia tylko na jednym interfejsie.Źródło
źródło
czasami trzeba użyć nazwy komputera w systemie Windows
pierwszy krok) w pliku konfiguracyjnym mysql:
(aby umożliwić odbieranie połączeń przez TCP / IP)
drugi krok) uczyń użytkownika w mysql, użytkownikami tabeli, z nazwą komputera w Windowsie, NIE ip
źródło
Włączenie zdalnego dostępu do katalogu głównego może być niebezpieczne. Lepiej byłoby skonfigurować konta użytkowników z bardziej restrykcyjnymi uprawnieniami. Poniższe trzy kroki powinny to zrobić.
Upewnij się, że linia zaczynająca się od
bind-address ...
jest przynajmniej skomentowana w pliku my.ini lub my.cnf. Jeśli nie istnieje, przejdź dalej. Ten plik można znaleźć wC:\ProgramData\MySQL\MySQL Server 8.0
systemie Windows.Następnie sprawdź, czy konto użytkownika, z którym nawiązujesz połączenie, nie ma
localhost
w polu Limit do dopasowania hostów. Chociaż nie jest to zalecane, możesz zamiast tego wpisać%
to pole do celów testowych. Możesz to zrobić, otwierając lokalne połączenie z serwerem za pomocą MySQL Workbench, a następnie wybierając opcję Serwer> Użytkownicy i uprawnienia z paska menu i znajdując konto użytkownika, z którym chcesz się połączyć.Pole „Ogranicz do dopasowania hostów” uniemożliwia połączenie nielokalne. To znaczy ogranicza akceptowane połączenia do wzorca adresów IP. Idealnie byłoby, gdybyś miał dostęp do serwera MySQL ze statycznego adresu IP lub podsieci, abyś mógł być jak najbardziej restrykcyjny.
źródło