转自:
https://www.jianshu.com/p/24bd98112d80
https://www.cnblogs.com/myblog1993/p/10560679.html
1 开放MySQL的远程连接
通过root用户登录MySQL:
# mysql -u root -p
执行赋权的命令:
MySQL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;
MySQL> flush privileges;
password为MySQL的root用户对应的密码。
重启MySQL:
方式一:
# /etc/init.d/mysql restart
方式二:
# service mysql restart
2 开启数据库默认端口
首先,使用如下命令查看3306端口(MySQL默认端口号,没有更改的情况下就是3306)是否对外开放:
netstat -an | grep 3306
如果显示如下,说明MySQL端口目前只监听本地连接127.0.0.1。然后需要修改MySQL的配置文件。
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
修改MySQL配置文件:
# cd /etc/mysql/mysql.conf.d
# vim mysqld.cnf
MySQL的默认端口也可以通过该文件进行修改。
将其中bind-address = 127.0.0.1注释掉。然后重启MySQL。
通过上述两个步骤之后就可以重新试一下是否可以访问,如果还是无法访问,那就有可能是防火墙的原因。
扫描二维码关注公众号,回复:
8795898 查看本文章
3 检查防火墙
可以先关闭防火墙测试,如果关闭之后就可以访问,那么可能就是MySQL的端口未开放,关闭防火墙和开放端口的命令如下:
关闭防火墙:
sudo ufw stop
开放3306端口:
sudo ufw allow 3306
4 附录
UFW 是Ubuntu下的一个主机端的iptables类防火墙配置工具(底层调用iptables来处理),简单易用。
安装方法
sudo apt install ufw
使用方法
ufw 的指令列表:
常用ufw 指令介绍
启用防火墙
sudo ufw enable
sudo ufw default deny
## 作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。
作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。
关闭防火墙
sudo ufw stop
查看防火墙状态
sudo ufw status
查看应用程序列表
sudo ufw app list
增加许可规则 许可ssh 端口
sudo ufw allow ssh
允许外部访问80端口
sudo ufw allow 80
禁止外部访问80 端口
sudo ufw delete allow 80
允许此IP访问所有的本机端口
sudo ufw allow from 192.168.1.1
可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级)
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16