sql >> Database >  >> RDS >> Mysql

Externe verbindingen Mysql Ubuntu

Om MySQL bloot te stellen aan iets anders dan localhost, moet je de volgende regel hebben

Voor mysql versie 5.6 en lager

zonder commentaar in /etc/mysql/my.cnf en toegewezen aan het IP-adres van uw computer en niet loopback

Voor mysql versie 5.7 en hoger

zonder commentaar in /etc/mysql/mysql.conf.d/mysqld.cnf en toegewezen aan het IP-adres van uw computer en niet loopback

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Of voeg eenbind-address = 0.0.0.0 . toe als u het IP-adres niet wilt specificeren

Stop vervolgens en start MySQL opnieuw met het nieuwe my.cnf-item. Eenmaal uitgevoerd, ga naar de terminal en voer de volgende opdracht in.

lsof -i -P | grep :3306

Dat zou zoiets als dit moeten zijn met je werkelijke IP in de xxx's

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Als de bovenstaande verklaring correct terugkeert, kunt u externe gebruikers accepteren. Als een externe gebruiker echter verbinding wil maken met de juiste privileges, moet die gebruiker zijn gemaakt in zowel de localhost als '%' zoals in.

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

dan,

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

en tot slot,

FLUSH PRIVILEGES; 
EXIT;

Als u niet dezelfde gebruiker hebt gemaakt als hierboven, kunt u, wanneer u lokaal inlogt, basis localhost-privileges overnemen en toegangsproblemen krijgen. Als u de toegang van mijn gebruiker wilt beperken, moet u de syntaxis van de GRANT-verklaring lezen HIER Als je dit allemaal hebt doorstaan ​​en nog steeds problemen hebt, post dan wat extra foutoutput en de bijbehorende my.cnf-regels.

OPMERKING:Als lsof niet terugkeert of niet wordt gevonden, kunt u het HIER installeren gebaseerd op uw Linux-distributie. Je hebt lsof niet nodig om dingen te laten werken, maar het is erg handig als dingen niet werken zoals verwacht.

UPDATE:Indien zelfs na het toevoegen/wijzigen van het bind-address in my.cnf niet werkte, ga dan en verander het op de plaats waar het oorspronkelijk was aangegeven:

/etc/mysql/mariadb.conf.d/50-server.cnf


  1. Oracle 12.2.0.1 komt in 2016

  2. Hoe praat Access met ODBC-gegevensbronnen? Deel 1

  3. Shapefiles importeren in postgresql in linux met pgadmin 4

  4. Hoe u de laatste dag van de maand in MySQL kunt krijgen