Aby wystawić MySQL na cokolwiek innego niż localhost, będziesz musiał mieć następujący wiersz
Dla mysql w wersji 5.6 i starszych
odkomentowane /etc/mysql/my.cnf
i przypisane do adresu IP twojego komputera, a nie sprzężenie zwrotne
Dla mysql w wersji 5.7 i nowszych
odkomentowane /etc/mysql/mysql.conf.d/mysqld.cnf
i przypisane do adresu IP twojego komputera, 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 określać 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 wyglądać mniej więcej tak z Twoim rzeczywistym adresem IP w xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Jeśli powyższe oświadczenie zwróci się poprawnie, będziesz mógł akceptować użytkowników zdalnych. Jednak aby zdalny użytkownik mógł łączyć się z odpowiednimi uprawnieniami, musisz mieć tego użytkownika utworzonego zarówno w localhost, jak i '%', jak w.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
następnie,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
i w końcu,
FLUSH PRIVILEGES;
EXIT;
Jeśli nie masz utworzonego tego samego użytkownika, co powyżej, logując się lokalnie możesz odziedziczyć podstawowe uprawnienia lokalnego hosta i mieć problemy z dostępem. Jeśli chcesz ograniczyć dostęp, jaki ma myuser, musisz przeczytać składnię instrukcji GRANT TUTAJ. Jeśli przejdziesz przez to wszystko i nadal masz problemy, napisz dodatkowe informacje o błędach i odpowiednie wiersze my.cnf.
UWAGA: Jeśli lsof nie zwróci lub nie zostanie znaleziony, możesz zainstalować go TUTAJ na podstawie swojej dystrybucji Linuksa. Nie potrzebujesz lsof, aby wszystko działało, ale jest niezwykle przydatne, gdy rzeczy nie działają zgodnie z oczekiwaniami.