det bedste værktøj, jeg fandt, var sqlyog, (måske også mysql workbench), som faktisk ville fortælle det værtsnavn, du kommer fra på den mislykkede forbindelse.
The reason I like it is that it keeps security tight, showing something likeAccess denied for user "example@ sqldat.com ". Bemærk, det værtsnavn har jeg lige fundet på, men det er vigtigt, uanset hvad dit kommer ind. Ellers er det jokertid, noget jeg ikke vil gøre. Du kan vælge at gøre det.
det er vigtigt, fordi det værtsnavn (hdm38.newyork.comcastbusiness.net ) er den jeg bruger under mysql create user
i modsætning til at bruge jokertegn som %
Jeg lod forbindelsen ovenfor mislykkes, men jeg bemærker, hvad værtsnavnet er ovenfor. Du vil se det nedenfor.
En hurtig tjekliste
1) din fjernbruger opretter forbindelse via en konto, der er oprettet med passende user,host
indgange (se på output fra select user,host from mysql.user order by 1,2
)
CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';
Med ovenstående kommando har vi nu en ny bruger, der har en chance for at komme ind. Kan ikke gøre noget. Kan ikke skifte til en db. Grundlæggende kan de bare gøre ting som select now();
2) du har udført grants
med flush privileges
(i hvert fald førstnævnte)
GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';
Vores bruger med ovenstående kommando kan nu gøre hvad som helst i mydb123 databasen/skemaet. Udforsk ovenstående Giv kommando i manualen for at finjustere adgangen til det absolutte minimum for de brugere, du opretter.
Hvis du er ny til mysql-sikkerhed, skal du ikke inkludere WITH GRANT OPTION
indtil du undersøger det.
Der er dem, der ville sige, at værtsnavnet ovenfor er '%' for trin 1 og 2. Det betyder, at julemanden kan oprette forbindelse fra enhver vært. Det er dit valg. Start stramt, slap op, når du kommer et sted hen og har lavet research på det.
3) du har ændret my.cnf og ændrede bind-address
væk fra 127.0.0.1
eller localhost
, til fordel for 0.0.0.0
Hvis bind-adressen ikke er 0.0.0.0
, du forbinder kun med ssh
4) du har ændret my.cnf og har en rem'd ud linje #skip-networking
. Selv hvis du skal oprette linjen bare for at få den ud, så gør det.
3/4 ændringer kræver genstart af mysql daemon
5) problemer med firewall. Så til EC2 har du brug for din AWS Security Group
som er aktiv for instansen for at inkludere åbningen af port 3306