前言

  由于近期,腾讯云服务器就要到期了,学生优惠即将失效了,所以准备将数据库和项目迁移到vultr上。然而,在使用nivicat连接mysql数据库的过程中,却屡次出现:Can't connect to MYSQL server on 'XX.XX.XX.XX'【10060 “Unknown error”】。

  查阅网友的博客后,对方分析可能三个原因:

  1 网络 [排除]

  2 权限。mysql数据库登陆用户的权限不足。[经过下述步骤测试,排除]

# 进入MYSQL数据库
XX@yy# sudo mysql -u root -p
XX@yy# # 新建用户
mysql> CREATE user jack@'%';# 任意主机
mysql> SET PASSWORD FOR jack@'%'=PASSWORD('test');
mysql> grant all privileges on *.* to jack;
mysql> FLUSH PRIVILEGES;# 更新mysql数据库系统的用户权限列表 # shell端登陆mysql by jack
OK # navicat端登陆mysql by jack
继续报上述错误

  3 防火墙 

  看来,只剩下这种可能了,我试了试,成了!
  我先通过vultr云服务商的FireWall来配置防火墙的进入站端口,结果,80端口生效了,但3306却依旧不行,目前原因未知。

  那还有其他办法来配置linux服务器的防火墙吗?答案有,便是linux自带的ufw防火墙工具。

UFW介绍与安装

  Uncomplicated Firewall,它是一款「用户友好」的shell工具,可用于管理 iptables 防火墙规则,其主要目的就是让管理 iptables防火墙规则 更加轻松容易

  【系统默认携带UFW +UFW 默认禁用】Ubuntu 18.04 LTS 系统中已默认附带了 UFW 工具,并且默认都是禁用状态(status:inactive)。

  【UFW默认:禁止所有端口入站,开启所有端口出站】默认情况下,UFW 将阻止所有传入连接并允许所有传出连接。即 除非用户专门打开特定端口,否则任何尝试访问本服务器的人都无法连接,但服务器上运行的应用程序和服务却能够对外访问。

  检查是否已安装ufw工具

# 方式一
man ufw # 方式二(推荐)
sudo ufw status verbose #查看UFW已配置的状态详细信息
sudo ufw status numbered#查看UFW已配置的状态详细信息,并对每一项配置编号显示
# verbose: adj.详细的,冗长的

  如果未安装,可通过下述命令一键安装

apt-get install ufw

UFW使用

  1.列出所有应用程序配置策略

sudo ufw app list

   2.查找有关配置文件和包含规则的更多信息

sudo ufw app info 'Nginx Full'

  

  3.允许SSH连接

   备注:在服务器上正式启用 UFW 防火墙之前,需要事先添加允许 SSH 连接的传入规则;否则,即使UFW开启SSH连接命令,也无效。

sudo ufw allow ssh
sudo ufw allow http

  4.允许指定端口连接

sudo ufw allow 3306/tcp
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 22/tcp

  5.允许指定端口范围内连接

sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp # 注:除允许单个端口连接之外,UFW 还允许直接配置端口范围。在使用 UFW 的端口范围时,必需指定 tcp 或 udp 协议。

  6.允许/拒绝指定特定IP地址入站/连接  

sudo ufw allow from XX.YY.ZZ.MM
sudo ufw deny from XX.YY.ZZ.MM

  7.删除UFW策略

# 方式一
# 查看想删除UFW策略的配置项对应编号
sudo ufw status numbered

  

# 指定删除编号为XX的防火墙策略
sudo ufw delete 4
#方式二
sudo ufw delete allow 8069

  8.启用UFW配置

sudo ufw enable

  9.禁用UFW配置

sudo ufw disable

  10.重置UFW配置

  备注:重置 UFW配置项时,系统会禁用 UFW 并删除所有活动规则。

sudo ufw rest

参考文献

  [1] 如何在Ubuntu 18.04 LTS上使用UFW设置防火墙

  [2] 数据库之数据库管理篇[mysql]

  [3] 远程连接docker中的mysql容器 报错10060 unknown error解决办法详解。

  [4] Linux之搭建远程数据库[Ubuntu:全过程]

最新文章

  1. 如何为Surface Dial设备开发自定义交互功能
  2. 完全卸载MySQL重新安装MySQL
  3. 关于PHP上传文件和中文名乱码情况
  4. Java——文本组件:JTextComponent
  5. Codeforces Round #216 (Div. 2)A. Valera and Plates
  6. backbone库学习-Events
  7. Hardwood Species 分类: POJ 树 2015-08-05 16:24 2人阅读 评论(0) 收藏
  8. cf(#div1 B. Dreamoon and Sets)(数论)
  9. 在IIS7.5上添加.NET4.0程序的虚拟目录时提示ASP.NET 4.0尚未在 Web 服务器上注册
  10. MVC自学第三课
  11. JavaScript之怎样获取元素节点
  12. Memcached内存存储
  13. 嵌套表SHAPE
  14. POJ1221(整数划分)
  15. kali linux 网络配置
  16. vuejs 使用vue-cli引入bootstrap
  17. 八、文件IO——存储映射
  18. Django App(五) load static files
  19. Android 滑块验证
  20. 数据处理项目Postmortem

热门文章

  1. shell脚本解压多个jar包
  2. 华硕飞行堡垒fx50 安装ubuntu18.04
  3. 类Scanner
  4. codeforces#1136E. Nastya Hasn't Written a Legend(二分+线段树)
  5. ADC获取滑块的值(8通道)
  6. 浅析Java的Object类
  7. 洛谷P1169[ZJOI2007]棋盘制作
  8. Logback日志基础配置以及自定义配置
  9. mac 重装系统
  10. MT【330】u,v,w法