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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介: 【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 端口号不正确

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

 

 

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

 

 

完结!


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
374 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
6月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
1376 16
|
6月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
298 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
6月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
647 7
|
5月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
627 0
|
7月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
366 5
|
6月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
466 158
|
6月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1112 152