阿里云安全组开放端口,mysql也设置了登录权限,还是不能远程连接

mysql安装完成后,给root用户授权远程登录权限,开放安全组端口。

用navicat远程登录,报错,10060 unkonwn error。

回想一下,应该没有什么地方做错,开始一步一步排错:

1、检查权限是否正常,select `user`,`host` from mysql.user;(正常)

2、检查安全组端口是否正常(正常)

3、防火墙是否开启(未启动)

4、检查3306端口是否占用,netstat -napl | grep 3306,发现异常,3306端口被占用。

修改mysql端口,重启mysql,重新配置安全组端口

vi /etc/my.cnf

[mysqld]
port=13306

#

systemctl restart mysqld

重启完成后,继续使用navicat远程连接,然后事实永远都不会遂人愿

依然报错!!!!!!!!!

只能接着苦逼的排错

到目前为止:

mysql是没有问题的

安全组是没问题的

防火墙一直是关着的,也是没有问题的

能出问题就这么点儿东西,但是现在看来都没有问题,那么问题处在哪儿????

找不到问题那就看看是什么地方不让我登

mysql -uroot -p127.0.0.1(正常登录)

mysql -uroot -p内网ip(正常登录)

mysql -uroot -p外网ip(报错)

原来是外网的问题,这里插一句,云服务器的网卡只显示内网ip不影响对外提供服务,也就是说,不是网卡的问题,那么就只能是安全组或者防火墙的问题了

在去检查一下安全组,端口确实正常,那就只剩下防火墙了

systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

怎么看这都是关闭状态,难不成防火墙关了还能拦截,这么猛的么

既然怀疑是防火墙的问题,那我把防火墙启起来,在把端口放开以后在把防火墙关了不就行了,嘿嘿🤭

说干就干

[root@localhost etc]# systemctl start firewalld
Job for firewalld.service failed because a timeout was exceeded. See "systemctl status firewalld.service" and "journalctl -xe" for details.
[root@localhost etc]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: failed (Result: timeout) since Fri 2022-03-11 14:04:01 CST; 8s ago
     Docs: man:firewalld(1)
  Process: 21610 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 21610 (code=exited, status=0/SUCCESS)

Mar 11 14:02:31 iZ2zeaoalqnp4d88t1z1liZ systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 11 14:04:01 iZ2zeaoalqnp4d88t1z1liZ systemd[1]: firewalld.service start operation timed out. Terminating.
Mar 11 14:04:01 iZ2zeaoalqnp4d88t1z1liZ systemd[1]: Failed to start firewalld - dynamic firewall daemon.
Mar 11 14:04:01 iZ2zeaoalqnp4d88t1z1liZ systemd[1]: Unit firewalld.service entered failed state.
Mar 11 14:04:01 iZ2zeaoalqnp4d88t1z1liZ systemd[1]: firewalld.service failed.

???启动防火墙都能报错???,这我是着实没有想到

带着满脑壳的问号,去百度一下:Failed to start firewalld - dynamic firewall daemon.

发现是python版本问题,/usr/sbin/firewalld文件头部的python版本和安装的python版本不一致导致的。

你以为我准备按照百度去修改解决吗

是的,我就是这么想的

就在我准备去修改的时候,突然灵机一动,既然启动有问题,那么firewalld的进程是不是也有问题????

试一试

[root@localhost etc]# ps -ef | grep firewalld
root      5822     1  0 Mar09 ?        00:00:00 /usr/bin/python -Es /usr/sbin/firewalld
root     21849  9642  0 14:11 pts/0    00:00:00 grep --color=auto firewalld

沃德法!!!,防火墙的进程竟然还在,我说怎么关了还能拦截,呸,垃圾,反正我也不用,kill -9 5822,直接干掉。

nice,问题成功解决!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现阿里云ECS上MySQL远程连接,需要进行以下步骤: 1. 登录阿里云ECS实例,进入MySQL服务,确保MySQL服务已经开启。 2. 在MySQL服务器上创建一个MySQL用户,并授权给该用户允许远程连接MySQL服务器的权限。您可以使用如下命令创建用户并授权: ``` CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 这里创建了一个名为myuser的用户,并授予了该用户在所有数据库和所有表上的所有权限。'%'表示可以从任何远程主机连接MySQL服务器。 3. 修改MySQL服务器的配置文件,允许远程访问。在MySQL服务器上找到my.cnf配置文件,并注释掉bind-address选项(默认是绑定到127.0.0.1,即本地回环地址),或将其设置为0.0.0.0,表示可以从任何远程主机连接MySQL服务器。 ``` #bind-address = 127.0.0.1 bind-address = 0.0.0.0 ``` 4. 在阿里云ECS实例中打开MySQL服务的3306端口,允许远程主机连接。可以使用阿里云控制台或者命令行工具进行操作。 如果使用防火墙,还需要在防火墙中添加入站规则,允许外部主机访问MySQL服务的3306端口。 完成以上步骤后,就可以使用MySQL客户端工具从任何远程主机连接阿里云ECS上的MySQL服务器了。连接字符串格式为: ``` mysql -h <ecs_public_ip> -P 3306 -u myuser -p ``` 其中,<ecs_public_ip>是ECS实例的公网IP地址,myuser是您在MySQL服务器上创建的用户,密码会在使用mysql命令后提示您输入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值