• MySQL远程连接不上的解决方法


    1.排除网络或防火墙问题
    先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙。
    配置防火墙,开启3306端口
    1
    2
    3
    vi /etc/sysconfig/iptables
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
    /etc/init.d/iptables restart(重启防火墙使配置生效)
    2.检查MySQL配置
    如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:
    netstat -apn|grep 3306 tcp6 0 0 127.0.0.1:3306 :::* LISTEN 13524/mysqld
    注意地方,这说明3306被绑定到了本地。检查一下my.cnf的配置,这里可以配置绑定ip地址。
    bind-address=addr
    不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
    ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。
    3.检查用户访问权限
    MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。
    update user set host =’%’ where user =‘root’;
    root表示想要被连接的数据库的用户名
    其中“%”表示允许所有机器能访问root用户
    然后   flush privileges;  刷新权限信息
    //最后,别忘了重启mysql使配置生效。
  • 相关阅读:
    java 分割
    我就骂你了,我tm还想打你呢
    就两个人,怎么搞管理?
    年底得了个公司奖金,但是我却高兴不起来
    Microsoft.VisualStudio.TestTools.UnitTesting 命名空间
    Python2.7.6标准库内建函数
    几种xml读取方法比较
    无论怎么样都不能成为你对别人发脾气的理由
    【产品策划】在移动互联网时代的多媒体社交
    DES加密 超详解 及 C++编程实现
  • 原文地址:https://www.cnblogs.com/zwbsoft/p/16180463.html
Copyright © 2020-2023  润新知