服务监听在127.0.0.1和0.0.0.0上,到底有什么区别呢?给个实际的例子,你们看看mysql
今天发如今nb1380的mysql从nb1381连不上? sql
一、使用grant加权限,失败ubuntu
mysql> select user,host,password from mysql.user; 11 rows in set (0.00 sec) mysql> grant all privileges on *.* to 'root'@'nb1381' identified by ' ' with grant option;
二、telnet失败,考虑多是iptables限制,加规则,无效vim
root@nb1380:/var/log/mysql# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
三、猜想多是监听在127.0.0.1上,而不是0.0.0.0上,查看my.cnf,果真是这个缘由 bash
root@nb1380:/var/log/mysql# vim /etc/mysql/my.cnf bind-address = 127.0.0.1 改成: bind-address = 0.0.0.0
重启mysql,果真telnet通了服务器
root@nb1381:~# telnet nb1380 3306 Trying 192.168.64.43... Connected to nb1380. Escape character is '^]'.
mysql也能链接了tcp
root@nb1381:~# mysql -uroot -p -hnb1380 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 40 Server version: 5.6.33-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
总结:ide
3306端口监听在127.0.0.1,只有本机客户端能够访问,其余服务器没法访问
ip
3306端口若是监听在0.0.0.0上,若是没有端口限制,那么其余服务器则能够链接该服务器的该端口input