• 无法远程连接服务器上的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’ IDENTIFIED BY '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端口的规则。

     

  • 相关阅读:
    DB2中的系统表SYSIBM.SYSDUMMY1
    关于用POI和EXCEL交互的问题
    JavaScript encodeURI() 函数
    JDBC自动提交和批处理操作
    JSP页面的异常处理<转>
    一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等...
    关于form.item不兼容的问题
    eclipse中tomcat内存溢出问题,报PermGen space
    IBM Websphere 说明文档
    css004 用样式继承节省时间
  • 原文地址:https://www.cnblogs.com/blogcxz/p/7341734.html
Copyright © 2020-2023  润新知