sql >> Databasteknik >  >> RDS >> Mysql

Kan inte fjärransluta till EC2 MySQL-installation

det bästa verktyget jag hittade var sqlyog, (kanske mysql workbench också), som faktiskt skulle berätta värdnamnet du kommer in från på den misslyckade anslutningen.

The reason I like it is that it keeps security tight, showing something likeAccess denied for user "example@ sqldat.com ". Notera, det värdnamnet, jag hittade precis på, men det är viktigt, vad ditt än kommer in. Annars är det dags för jokertecken, något jag inte kommer att göra. Du kan välja att göra det.

det är viktigt eftersom det värdnamnet (hdm38.newyork.comcastbusiness.net ) är den jag använder under mysql create user i motsats till att använda jokertecken som %

Jag låter den anslutningen ovan misslyckas, men jag noterar vad värdnamnet är ovan. Du kommer att se det nedan.

En snabb checklista

1) din fjärranvändare ansluter via ett konto som skapades med lämplig user,host poster (titta på utdata från select user,host from mysql.user order by 1,2 )

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

Med kommandot ovan har vi nu en ny användare som har en chans att komma in. Kan inte göra någonting. Kan inte ändra till en db. I grund och botten kan de bara göra saker som select now();

2) du har utfört grants med flush privileges (åtminstone den förra)

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

Vår användare med kommandot ovan kan nu göra vad som helst i mydb123-databasen/schemat. Utforska det ovanstående Grant-kommandot i manualen för att finjustera åtkomsten till ett minimum för de användare du skapar.

Om du är ny på mysql säkerhet, inkludera inte WITH GRANT OPTION tills du undersöker det.

Det finns de som skulle säga att värdnamnet ovan skulle vara '%' för steg 1 och 2. Det betyder att tomten kan ansluta från vilken värd som helst. Valet är ditt. Börja hårt, lossa när du kommer någonstans och har gjort research på det.

3) du har ändrat my.cnf och ändrade bind-address bort från 127.0.0.1 eller localhost , till förmån för 0.0.0.0

Om bind-adress inte är 0.0.0.0 , du ansluter bara med ssh

4) du har ändrat my.cnf och har en rem'd out-rad #skip-networking . Även om du måste skapa raden bara för att ta bort den, gör det.

3/4 ändringar kräver omstart av mysql daemon

5) brandväggsproblem. Så för EC2 behöver du din AWS Security Group som är aktiv för instansen att inkludera öppnandet av port 3306



  1. Parameter nummer 2 är inte en OUT-parameter

  2. Hur får man första och sista posten från en sql-fråga?

  3. JSON_REPLACE() – Ersätt värden i ett JSON-dokument i MySQL

  4. Hur skapar jag en kontrollbegränsning för flera tabeller?