Aby udostępnić MySQL na czymkolwiek innym niż localhost, musisz mieć następujący wiersz
Dla mysql w wersji 5.6 i starszych
odkomentowane w /etc/mysql/my.cnf
i przypisany do Twojego komputera adres IP, a nie sprzężenie zwrotne
Dla mysql w wersji 5.7 i nowszych
odkomentowane w /etc/mysql/mysql.conf.d/mysqld.cnf
i przypisany do Twojego komputera adres IP, a nie sprzężenie zwrotne
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Lub dodaj bind-address = 0.0.0.0
jeśli nie chcesz podawać adresu IP
Następnie zatrzymaj i uruchom ponownie MySQL z nowym wpisem my.cnf. Po uruchomieniu przejdź do terminala i wprowadź następujące polecenie.
lsof -i -P | grep :3306
To powinno wrócić mniej więcej tak z twoim rzeczywistym adresem IP w xxxach
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Jeśli powyższe stwierdzenie zwróci się poprawnie, będziesz mógł akceptować zdalnych użytkowników. Jednak aby zdalny użytkownik mógł połączyć się z odpowiednimi uprawnieniami, musisz mieć tego użytkownika utworzonego zarówno na hoście lokalnym, jak i „%”, jak w.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
wtedy
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
i wreszcie
FLUSH PRIVILEGES;
EXIT;
Jeśli nie masz utworzonego tego samego użytkownika, co powyżej, podczas logowania lokalnego możesz dziedziczyć podstawowe uprawnienia hosta lokalnego i mieć problemy z dostępem. Jeśli chcesz ograniczyć dostęp myuser, musisz przeczytać składnię instrukcji GRANT TUTAJ Jeśli przejdziesz przez to wszystko i nadal masz problemy, opublikuj dodatkowe informacje o błędach i odpowiednie wiersze my.cnf.
UWAGA:Jeśli lsof nie zwróci lub nie zostanie znaleziony, możesz go zainstalować TUTAJ na podstawie twojej dystrybucji Linuksa. Nie potrzebujesz lsof, aby wszystko działało, ale jest to niezwykle przydatne, gdy coś nie działa zgodnie z oczekiwaniami.
AKTUALIZACJA:Nawet po dodaniu/zmianie bind-address
w my.cnf
nie zadziałało, a następnie przejdź i zmień go w miejscu, w którym zostało pierwotnie zadeklarowane:
/etc/mysql/mariadb.conf.d/50-server.cnf