Pour exposer MySQL à autre chose que localhost, vous devrez avoir la ligne suivante
Pour mysql version 5.6 et inférieure
non commenté /etc/mysql/my.cnf
et attribué à l'adresse IP de votre ordinateur et non en boucle
Pour mysql version 5.7 et supérieure
non commenté /etc/mysql/mysql.conf.d/mysqld.cnf
et attribué à l'adresse IP de votre ordinateur et non en boucle
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Ou ajoutez un
bind-address = 0.0.0.0
si vous ne souhaitez pas spécifier l'adresse IP
Puis arrêtez et redémarrez MySQL avec la nouvelle entrée my.cnf. Une fois lancé, accédez au terminal et entrez la commande suivante.
lsof -i -P | grep :3306
Cela devrait revenir quelque chose comme ça avec votre adresse IP réelle dans les xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Si la déclaration ci-dessus revient correctement, vous pourrez alors accepter des utilisateurs distants. Cependant, pour qu'un utilisateur distant se connecte avec les privilèges appropriés, vous devez avoir cet utilisateur créé à la fois dans l'hôte local et dans '%' comme dans.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
puis,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
et enfin,
FLUSH PRIVILEGES;
EXIT;
Si vous n'avez pas créé le même utilisateur que ci-dessus, lorsque vous vous connectez localement, vous pouvez hériter des privilèges de base localhost et avoir des problèmes d'accès. Si vous souhaitez restreindre l'accès à myuser, vous devez lire la syntaxe de l'instruction GRANT ICI .
REMARQUE: Si lsof ne retourne pas ou n'est pas trouvé, vous pouvez l'installer ICI en fonction de votre distribution Linux. Vous n'avez pas besoin de lsof pour faire fonctionner les choses, mais c'est extrêmement pratique lorsque les choses ne fonctionnent pas comme prévu.