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