2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )

@2002 Can’t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )
最近刚搞了个域名 买了个服务器 想着自己搭个站玩
结果今天测试mysql 的时候 发现本地的navicat 连不上服务器mysql
现在把问题记录一下。2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第1张图片
#有以下步骤:
##1:由于我是在华为云买的服务器
所以 在华为云的 安全组 -->配置规则 入方向规则 那里 (出方向不用管 看了一眼 貌似出方向默认就没啥限制)
添加上3306端口的规则

##2:这个时候再次尝试 还是不行 看了下还要把mysql 的user 表的 root 的host 改为“%”,
由于我的表有多行root 于是我就想插入一个 ,于是使用命令 :insert into user(user,host) values(“root”,“%”);结果爆了 ERROR 1364 (HY000): Field ‘ssl_cipher’ doesn’t have a default value 这个Error. 查了一下 这个地方不能新增 只能修改 于是 使用命令:update user set host = ‘%’ where user = ‘root’; 会报一个 ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’ 的Error 不用担心 ,更改已经成功了 , 猜测报错是因为这个表设置了user和host联合唯一索引,desc 可以看到 这俩都是primary key 2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第2张图片
或者使用update user set host = ‘%’ where user = ‘root’ and host = ‘localhost’ 应该也是可以的,你试下。改好之后的效果如下:2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第3张图片
这里我设置一次以为没成功就再次用update user set host = ‘%’ where user = ‘root’ and host = 'localhost’又来了一次,实际上此时已经改好了 所以还是会报duplicate (重复)。你执行的时候直接用两个字段做筛选条件的,也许就没错了。最后别忘了 FLUSH 才生效。--------弄好这些之后再次测试链接 还是不行。 于是乎 又看到说也要修改服务器的防火墙 。
##3:于是去看下服务器的防火墙
登陆上服务器 先用这个命令iptables -L 查了下 ,看到2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第4张图片搜了一下 有的资料说这个是华为云的设置之类的 解决方案就是删了sudo iptables -L -n --line-number,sudo optables -D INPUT 行数。 看样子也可以,可以参考:这篇http://yangjunwei.com/3025.html和这篇https://www.csdn.net/tags/OtTaEgwsOTc1MDgtYmxvZwO0O0OO0O0O.html和这篇和这个
但是我觉得删除不好 毕竟是华为云的安全设置 会考虑的这么不周到 一个最基础的mysql服务都要 先硬删iptables 的规则才能用。这也太反人类➕无语➕不科学了。于是继续找解决方案 —>发现ubuntu系统还有一个防火墙命令 ufw (来这学习ufw)本质就是一个简化的 简单明了的防火墙工具我参考的文章 。于是试了试 我的是一开始就active的 ,然后就增加了规则ufw allow 3306/tcp ,于是2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第5张图片
添加完成后 再次用navicat测试连接 成功了

我又删除这个端口规则试了试 2002 Can‘t connect to server on (60) 连接不上服务器mysql服务(华为云 ubuntu20 )_第6张图片
果然又连不不上了。
总结起来就是:
1:修改云服务器控制台的安全组的规则;
2: 修改服务器防火墙的规则;
3: 修改mysql user 表的host 为“%”;
虽然我的步骤不是这么来的,但是就这三个的问题,不管哪个先来,能解决就行。

你可能感兴趣的:(服务器,mysql,华为云)