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

Nie można połączyć się zdalnie z instalacją EC2 MySQL

najlepszym narzędziem, jakie znalazłem, był sqlyog (być może także mysql workbench), który faktycznie podałby nazwę hosta, z którego pochodzisz po nieudanym połączeniu.

Powodem, dla którego mi się podoba, jest to, że zapewnia wysoki poziom bezpieczeństwa, wyświetlając coś w rodzaju Odmowa dostępu dla użytkownika „3964232@przyklad. sqldat.com ". Zwróć uwagę, że nazwa hosta, właśnie wymyśliłem, ale jest ważna, niezależnie od tego, co nadejdzie. W przeciwnym razie jest to czas wieloznaczny, czego nie zrobię. Możesz to zrobić.

jest to ważne, ponieważ ta nazwa hosta (hdm38.newyork.comcastbusiness.net ) to ten, którego używam podczas mysql create user w przeciwieństwie do używania symboli wieloznacznych, takich jak %

Pozwoliłem, aby powyższe połączenie się nie powiodło, ale zauważam, jaka jest powyżej nazwa hosta. Zobaczysz to poniżej.

Krótka lista kontrolna

1) Twój zdalny użytkownik łączy się przez konto utworzone z odpowiednim user,host wpisy (spójrz na dane wyjściowe z select user,host from mysql.user order by 1,2 )

CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';

Dzięki powyższemu poleceniu mamy teraz nowego użytkownika, który ma szansę się dostać. Nic nie można zrobić. Nie można zmienić na db. Zasadniczo mogą po prostu robić takie rzeczy jak select now();

2) wykonałeś grants z flush privileges (przynajmniej ten pierwszy)

GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';

Nasz użytkownik z powyższym poleceniem może teraz zrobić wszystko w bazie danych/schemacie mydb123. Zapoznaj się z powyższym poleceniem Grant w instrukcji, aby dostroić dostęp do absolutnego minimum dla użytkowników, których tworzysz.

Jeśli jesteś nowy w bezpieczeństwie mysql, nie dołączaj WITH GRANT OPTION dopóki go nie zbadasz.

Są tacy, którzy powiedzieliby, że powyższa nazwa hosta to „%” dla kroków 1 i 2. Oznacza to, że Święty Mikołaj może łączyć się z dowolnego hosta. Wybór nalezy do ciebie. Zacznij ciasno, rozluźnij się, gdy już gdzieś dotrzesz i przeprowadzisz badania.

3) zmodyfikowałeś my.cnf i zmieniono bind-address z dala od 127.0.0.1 lub localhost , na korzyść 0.0.0.0

Jeśli adres bindowania to nie 0.0.0.0 , łączysz się tylko przez ssh

4) zmodyfikowałeś my.cnf i wypisz wiersz #skip-networking . Nawet jeśli musisz stworzyć linię tylko po to, aby ją usunąć, zrób to.

3/4 zmian wymaga ponownego uruchomienia demona mysql

5) problemy z zaporą. Więc dla EC2 potrzebujesz swojej AWS Security Group który jest aktywny dla instancji, aby uwzględnić otwarcie portu 3306



  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 zaimplementować system filtrów w SQL?

  2. MySQL select wydaje się bardzo powolny, ale nie możesz pomyśleć, jak to ulepszyć?

  3. MySQL Wildcard dla =- czy istnieje?

  4. org.json.JSONException:Wartość <br typu java.lang.String nie może zostać przekonwertowana na JSONObject

  5. usuń wiersze z wielu tabel