sql >> Database >  >> RDS >> Mysql

Kan geen externe verbinding maken met EC2 MySQL-installatie

de beste tool die ik vond was sqlyog (misschien ook mysql workbench), die de hostnaam zou vertellen waar je vandaan komt op de mislukte verbinding.

De reden dat ik het leuk vind, is dat het de beveiliging strak houdt en iets laat zien als Toegang geweigerd voor gebruiker "

dat is belangrijk omdat die hostnaam (hdm38.newyork.comcastbusiness.net ) is degene die ik gebruik tijdens mysql create user in tegenstelling tot het gebruik van jokertekens zoals %

Ik heb die verbinding hierboven laten mislukken, maar ik noteer wat de hostnaam hierboven is. Je ziet het hieronder.

Een snelle checklist

1) uw externe gebruiker maakt verbinding via een account dat is aangemaakt met de juiste user,host items (kijk naar de output van select user,host from mysql.user order by 1,2 )

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

Met dat bovenstaande commando hebben we nu een nieuwe gebruiker die een kans heeft om binnen te komen. Kan niets doen. Kan niet veranderen in een db. In principe kunnen ze gewoon dingen doen als select now();

2) je hebt grants uitgevoerd met flush privileges (tenminste de eerste)

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

Onze gebruiker met de bovenstaande opdracht kan nu alles doen in de mydb123-database/het schema. Verken de bovenstaande Grant-opdracht in de handleiding voor het verfijnen van de toegang tot het absolute minimum voor de gebruikers die u aanmaakt.

Als mysql-beveiliging nieuw voor u is, gebruik dan niet de WITH GRANT OPTION totdat je het onderzoekt.

Er zijn mensen die zouden zeggen dat de hostnaam hierboven '%' moet zijn voor stap 1 en 2. Dat betekent dat de kerstman verbinding kan maken vanaf elke host. De keuze is aan jou. Begin strak, ontspan als je eenmaal ergens bent en het onderzoek ernaar hebt gedaan.

3) u heeft my.cnf . gewijzigd en veranderde bind-address weg van 127.0.0.1 of localhost , in het voordeel van 0.0.0.0

Als het bindadres niet 0.0.0.0 is , je maakt alleen verbinding met ssh

4) u heeft my.cnf . gewijzigd en heb een rem'd out line #skip-networking . Zelfs als je de regel moet maken om hem te verwijderen, doe het dan.

3/4 wijzigingen vereisen herstart van mysql daemon

5) firewallproblemen. Dus voor EC2 heb je je AWS Security Group . nodig die actief is voor de instantie om het openen van poort 3306 op te nemen



  1. Waar worden de JPA @Table annotatiecatalogus en schemavariabelen voor gebruikt?

  2. ORA-12516, TNS:luisteraar kon geen beschikbare handler vinden

  3. heb een select die 10 query's in doctrine doet (Symfony)

  4. Controleer of waarde bestaat in Postgres-array