问题一:端口状态
- 查看 3306 端口状态
sudo netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:*
3306端口是默认绑定在本地IP 127.0.0.1上的,所以外网无法访问该主机的3306端口。
打开MySQL的配置文件:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 找到如下内容的一行并注释掉:
bind-address = 127.0.0.1
- 重启MySQL服务
sudo systemctl restart mysql
然后使用如下命令查看端口绑定状态
sudo netstat -an | grep 3306
问题二:用户权限
查看用户权限
1 | sudo mysql -uroot -p[你的密码] |
当显示如下,表示用户root只允许内网访问
root localhost
给用户授权
1 | grant all privileges on *.* to 'root'@'[允许的ip]' identified by '[密码]' with grant option; |
其中*[允许的ip]
如果设置为*%**的话则表示所有$ip$都可以访问,*[密码]
*表示外网访问的密码是什么。比如我设置成所有$ip$都可访问,密码是$root$,则命令如下:
1 | grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; |
重新查看,会显示
root %
root localhost