【Linux环境】Centos7.x 安装MySQL,使用Navicat等远程连接工具报2003-Can‘t connect to MySQL server on(10060 Unknown err)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云防火墙,500元 1000GB
简介: 【Linux环境】Centos7.x 安装MySQL,使用Navicat等远程连接工具报2003-Can‘t connect to MySQL server on(10060 Unknown err)

一、引言

最近新买了一台阿里云服务器Centos7.x ,在安装完MySQL之后,通过Xshell可以访问服务器上的MySQL,但是使用Navicat等远程连接工具却报错2003 - Can't connect to MySQL server on ''8.131.154.146'(10060 "Unknown error"),结果搞了一下午才解决掉,找了大半天,最终还是防火墙上的问题,写此博客的目的就是希望给那些还在迷茫的同学们指一条明路,绕过一些坑。

二、报错原因

我归纳的原因就这么几种情况,(1)网络问题,(2)权限问题,(3)防火墙问题(iptables)、(4)服务器端口访问权限问题以及(5)端口号不正确。我是一个问题一个问题进行排查的,最终是查到防为墙的原因导致我连不上。

三、解决方案

3.1 网络问题

输入用户名和密码,能连接上服务器上的MySQL数据库,如下图所示:就证明你的网络没有问题,那么就排除这一个。

3.2 权限问题(可以先看防火墙的问题)

登录MySQL,查看一下账户是否允许远程连接,如果无法连接可以尝试以下方法。

// 登录MySQL,以下命令不区分大小写的

命令:mysql>  mysql -u root -p

// 任何远程主机都可以访问数据库

命令:mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

// 需要输入次命令使修改生效

命令:mysql> FLUSH PRIVILEGES;

执行完授权(即上述第二条命令之后,可能会报错ERROR 1133 (42000): Can't find any matching row in the user table),如下图所示:

报这个错之后,执行一下 flush privileges 这个命令之后,可能会成功(你比较幸运哦,可以进行下一步了),可能不会成功,那就要更改user用户的host属性了,然后再执行 flush privileges 这个命令即可。

3.3 防火墙的问题

很多时候在liunx系统上安装了web服务应用后(如tomcat、apache等),需要让其它电脑能访问到该应用,而linux系统(centos-7、redhat等)的防火墙是默认只对外开放了22端口,可能没有对mysql的3306开放端口。

而centOs宿主机的端口设置在/etc/sysconfig/iptables文件中配置。(vi编辑器的用法:esc:命令行模式/插入模式;i:插入,wq:保存推出,q:退出,q!:不保存退出)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 放在22端口下面的位置,不要乱放,这就开放了mysql远程连接的端口,然后重启一下iptables的服务就ok了。

特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面。

# 80 默认端口  # 3306 MySQL默认端口  # 8080 Tomcat默认端口

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

-A INPUT -j REJECT –reject-with icmp-host-prohibited

-A FORWARD -j REJECT –reject-with icmp-host-prohibited

COMMIT

/etc/init.d/iptables restart

#最后重启防火墙使配置生效,如果重启失败(Failed to start iptables.service: Unit not found.),可以查看我的另一篇博客:【Linux环境】centos7 Failed to start iptables.service: Unit not found 防火墙

 

3.4 服务器端口访问权限问题

首先检查你的阿里或腾讯的服务器控制台是否开启3306端口访问权限,关于在哪里看,请自行百度,我的如下:

以下是我手动添加过后的,请参考下图哦:

3.5 端口号不正确

至于这个原因,那就容易解决的多了,仔细查看一下端口号就能解决,我就不再赘述了。

 

 

结束语:希望能帮到正在踩坑的同学们。

 

 

完结!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
21天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
168 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
7天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
22 3
|
7天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
20 3
|
18天前
|
Linux UED iOS开发
|
22天前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
|
26天前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
34 3
|
1月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
222 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
22 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
77 1