J'ai installé le serveur MySQL sur mon serveur Ubuntu local (11.10). Je ne peux pas me connecter au serveur à partir d'une machine distante.
Quand j'ai essayé: - nmap localhost
, il montre ce qui suit
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http. 139/tcp open netbios-ssn 445/tcp open Microsoft -ds 631/tcp open ipp 3306/tcp open mysql
Cela signifie que 3306
, le port MySQL est ouvert, non? Mais quand j'ai essayé nmap 192.168.0.50
, qui est l'IP du serveur, j'obtiens ce qui suit: -
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http. 139/tcp open netbios-ssn 445/tcp open Microsoft -ds
Cela signifie-t-il que le port n'est pas ouvert lors de l'accès via IP? Si oui, comment puis-je ouvrir le port?
J'avais essayé le code suivant, mais on dirait que cela n'a pas fonctionné.
Sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Qu'est-ce qui ne va pas ici?
Votre service MySQL ne doit servir que localhost (liaison d’interface). C'est la valeur par défaut pour des raisons de sécurité. Si vous avez vraiment besoin d'y accéder directement depuis d'autres hôtes, il existe un Nice Comment activer l'accès à distance à MySQL sur Ubunt que vous pouvez suivre:
/etc/mysql/my.cnf
ou /etc/mysql/mysql.conf.d/mysqld.cnf
avec votre éditeur préféré, comme sur différents systèmes, il est trouvé différent.[mysqld]
et le mot-clé bind-address
. Ceci est généralement défini sur 127.0.0.1
- changez-le pour qu'il corresponde à votre adresse IP "normale"service mysql restart
)N'oubliez pas que vous devez permettre à vos utilisateurs distants d'accéder à leur base de données à partir de distants, en définissant les GRANT appropriés, par exemple.
GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';
Notez le @'%'
, qui signifie "à partir de n’importe quel hôte".