服务器mysql无法连接数据库_无法远程连接服务器上的mysql

前言

使用mysql管理工具连接服务器上的mysql,显示连接被拒绝,但是在服务器上是可以登录mysql的。

无法远程连接通常以下几种情况:

首先,

关闭mysql。

service mysqld stop

1.0 没有授权(这里介绍三种的方法)

1.1 查看授权

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

+-----------------------+

| host |

+-----------------------+

| % |

| 127.0.0.1 |

+-----------------------+

host下面的字段:

% 代表任何主机都可以连接

127.0.0.1   表示该用户只能通过这个服务器地址连接

1.2 如果没有授权,修改授权

授权任何地址都可以连接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

或者这样写:

grant select,delete,update,create,insert,drop on *.* to admin@"%" identified by "123456";

1.3 授权一个ip地址访问该数据库

本机ip自己通过cmd查看 ,假设这里我的本机ip是112.141.165.24

授权root用户,仅可以通过112.141.165.24访问服务器上的数据库。

GRANT ALL PRIVILEGES ON *.* TO 'root'@’112.141.165.24’ IDENTIFIEDBY '123456' WITH GRANT OPTION;

以上,授权后全部需要刷新授权:

flush privileges;

2.0 防火墙禁止了3306端口

查看服务器开启的端口

vi /etc/sysconfig/iptables

看一下里面的配置是否有3306端口

没有的情况下:

添加一条配置3306端口的策略

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

重启防火墙

service iptables restart

3.0 查看mysql配置

修改MySQL的配置文件/etc/mysql/my.cnf,默认3306端口只允许本地访问

注释条这行:

#bind-address = 127.0.0.1

或者改成     bind-address = 0.0.0.0

4.0 修改安全组策略

上面的三条都不行,请看这一条。

登录阿里云服务器

在ESC服务器>网络和安全>安全组,点击你实例上的配置规则,如果没有3360的话,自己配置一条开放3306端口的规则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值