Aby wystawiać MySQL do niczego innego niż localhost będzie mieć następującą linię
dla MySQL w wersji 5.6 i poniżej
odkomentowane w /etc/mysql/my.cnf
i przypisany do adresu komputery IP i nie LOOPBACK
mysql wersja 5.7, powyżej
komentarzem na /etc/mysql/mysql.conf.d/mysqld.cnf
i przypisany do adresu IP i komputery nie LOOPBACK
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Lub dodaj bind-address = 0.0.0.0
jeśli nie chcesz, aby określić OD
Następnie zatrzymaj i uruchom ponownie MySQL z nowego wpisu my.cnf. Po uruchomieniu przejdź do terminala i wprowadź następujące polecenie.
lsof -i -P | grep :3306
To powinno wrócić coś podobnego z aktualnej IP w XXX
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Jeśli powyższe wyrażenie zwraca poprawnie będzie wtedy w stanie przyjąć zdalnych użytkowników. Jednak dla użytkownika zdalnego łączenia z odpowiednimi specjalnie uprawnionych trzeba mieć, że użytkownik tworzone zarówno w localhost 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 wreszcie
FLUSH PRIVILEGES;
EXIT;
Jeśli nie masz tego samego użytkownika utworzonego jak powyżej, po zalogowaniu się lokalnie możesz dziedziczyć podstawowe uprawnienia localhost i problemy z dostępem. Jeśli chcesz ograniczyć dostęp do myuser, musisz przeczytać na składni instrukcji GRANT HERE Jeśli przejdziesz przez to wszystko i nadal będziesz mieć problemy, wyślij dodatkowe dane o błędach i odpowiednie linie my.cnf.
UWAGA: Jeśli lsof nie zwróci lub nie zostanie znaleziony, możesz zainstalować go pod numerem HERE na podstawie swojej dystrybucji Linuksa. Nie potrzebujesz lsof, aby wszystko działało, ale jest bardzo przydatne, gdy rzeczy nie działają zgodnie z oczekiwaniami.
jakiej wersji MySQL używasz? – Steve
Wersja serwera: 5.5.29-0ubuntu0.12.10.1 (Ubuntu) –
co to polecenie zwraca? ubuntu ~ $ sudo lsof -i -P | grep: 3306 – apesa