zoukankan      html  css  js  c++  java
  • ***MySQL错误:Can't connect to MySQL server (10060)

    当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060),我们从以下几个方面入手,找出错误的原因:

    1.网络不通。

    检查能不能ping通。

    2.防火墙设置。这个可能性也很大,优先排查这个

    防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口。

    方法:

    防火墙开放3306端口

    1、打开防火墙配置文件

    1
    vi  /etc/sysconfig/iptables

    2、增加下面一行

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

    3、重启防火墙

    1
    service  iptables restart

    3.mysql的账户设置。

    mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:

    1. mysql -u root -p    //登录MySQL  
    2.  
    3. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库  
    4.  
    5. mysql> FLUSH PRIVILEGES;    //需要输入次命令使修改生效  
    6.  
    7. mysql> EXIT    //退出 

    也可以通过修改表来实现远程:

    1. mysql -u root -p  
    2.  
    3. mysql> use mysql;  
    4.  
    5. mysql> update user set host = '%' where user = 'root';  
    6.  
    7. mysql> select host, user from user; 

    其实错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉


    linux下mysql开启远程访问权限及防火墙开放3306端口

    报错:1130-host ... is not allowed to connect to this MySql server

    解决方法:

    1。 改表法。

    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

    mysql -u root -pvmwaremysql>use mysql;

    mysql>update user set host = '%' where user = 'root';

    mysql>select host, user from user;

    2. 授权法。

    例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    FLUSH   PRIVILEGES;

    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    FLUSH   PRIVILEGES;

    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

    GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    FLUSH   PRIVILEGES;

    我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了

    另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.

    在安装mysql的机器上运行:

    1、d:mysqlin>mysql   -h   localhost   -u   root //这样应该可以进入MySQL服务器

    2、mysql>GRANT   ALL   PRIVILEGES   ON   *.*   TO   'root'@'%' IDENTIFIED BY 'root's password'  WITH   GRANT   OPTION //赋予任何主机访问数据的权限

    3、mysql>FLUSH   PRIVILEGES //修改生效

    4、mysql>EXIT //退出MySQL服务器

    这样就可以在其它任何的主机上以root身份登录啦!

    报错:2003-can't connect to mysql server on ' ' (10038)

    出现这个错误的原因是:远程3306端口未对外开放

    防火墙开放3306端口

    1、打开防火墙配置文件

    1
    vi  /etc/sysconfig/iptables

    2、增加下面一行

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

    3、重启防火墙

    1
    service  iptables restart
  • 相关阅读:
    正则表达式的三种模式【贪婪、勉强、侵占】的分析
    php实用的文件上传类
    php简单实用的验证码生成类
    phpstorm不安装apache就可以本地测试PHP
    Ajax技术——带进度条的文件上传
    Mybatis 多表查询及查询结果映射
    关于textarea包在div的自适应问题
    Luogu P3200 [HNOI2009]有趣的数列
    群&置换群&burnside
    卡特兰树
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/7645871.html
Copyright © 2011-2022 走看看