navicat mysql 10060_记一次Navicat for MySQL 10060错误的解决过程 - 小众知识

navicat mysql 10060_记一次Navicat for MySQL 10060错误的解决过程

2022-08-17 17:28:09 苏内容
  标签: navicat/mysql
阅读:5546

笔者的问题是安装了小皮面板,80端口都给自动开了,3306的端口不是自动放行的


远程连接mysql数据库的时候显示Can't connect to MySQL server (10060) 如下图所示

  可以从以下几个方面入手,找出错误的原因:

1.网络问题#

  网络不通时会导致这个问题 检查下是不是能ping通

  

 

2.mysql账户设置
  mysql账户是否不允许远程连接

  

--  mysql -u root -p--  show databases;--  use mysql; 
--  select host,user from user

 可以看到mysql已经设置允许远程连接

 若root用户显示host为localhost 则需要授权 root 用户的所有权限并设置远程访问

  

-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库  
 -- FLUSH PRIVILEGES;    //需要输入次命令使修改生效  
 -- EXIT    //退出 

 

也可以通过修改表来实现远程:

-- use mysql;  
 
-- update user set host = '%' where user = 'root';  
 
-- select host, user from user; 

 

3.防火墙端口未开放#

root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-ports20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp[root@iZ2zee2l6djknfZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@iZ2zee2l6djknfZ ~]# firewall-cmd --reload
success
[root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-port20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp 3306/tcp

可以看出mysql3306端口没有开放 此处开放 然后刷新就可以了

其他防火墙命令

#centos7查看防火墙所有信息
firewall-cmd --list-all

#centos7查看防火墙开放的端口信息
firewall-cmd --list-ports

#新增一个开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#说明:
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent 永久生效,没有此参数重启后失效
 
#新增多个端口:
firewall-cmd --zone=public --add-port=80-90/tcp --permanent

#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent 

#重新加载
firewall-cmd --reload #查看本机已经启用的监听端口centos7以下使用netstat -ant,7使用ss ss -ant #centos7启动防火墙 systemctl start firewalld.service #centos7停止防火墙/关闭防火墙 systemctl stop firewalld.service #centos7重启防火墙 systemctl restart firewalld.service #设置开机启用防火墙 systemctl enable firewalld.service #设置开机不启动防火墙 systemctl disable firewalld.service

 

4.查看云服务器商是否配置安全组规则 #

 

其实出现这个错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉



navicat连接mysql时,出现

一般出现这种错误多是由于服务器未开启3306端口导致的。或者是权限的问题可参考mysql数据库授权。


Centos


# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

# service iptables save #保存iptables规则

1

2

Ubuntu/Debian


# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

# iptables-save > /etc/iptables.up.rules  #保存iptables规则

1

2

数据库授权


# mysql -uroot -p

> grant all username on *.* to username@'%' with grant option; 

1

2

#授权语句,特别注意有分号


> flush privileges; #刷新

1

or

# vim /etc/mysql/mysql.conf.d/mysqld.cnf

1

将bind-address这行注释到或者改为0.0.0.0


重启mysql


问题描述

MySQL的3306端口监听到tcp6。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 执行以下命令备份my.cnf文件。
    cp my.cnf my.cnf.bak
  2. 在my.cnf配置文件里面添加以下内容,然后重启MySQL服务。
    bind-address = 0.0.0.0


扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1