***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:\mysql\bin\>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
posted @ 2017-10-10 15:27  谦信君  阅读(...)  评论(... 编辑 收藏