Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zdalne połączenia Mysql Ubuntu

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak importować i eksportować bazę danych przez SSH

  2. Symulacja polecenia ORDER BY FIELD() MySQL w Postgresql

  3. WEEKOFYEAR() Przykłady – MySQL

  4. Jak przechowywać GUID w tabelach MySQL?

  5. MySQL:Szybki podział typów złączeń