***MySQL错误:Can't connect to MySQL server (10060)

当远程链接MySQL数据库的时候显示Can't connect to MySQL server (10060),咱们从如下几个方面入手,找出错误的缘由:html

1.网络不通。mysql

检查能不能ping通。linux

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

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

方法:数据库

防火墙开放3306端口服务器

一、打开防火墙配置文件网络

?
1
vi  /etc/sysconfig/iptables

二、增长下面一行app

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

三、重启防火墙tcp

?
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的机器上运行:

一、d:\mysql\bin\>mysql   -h   localhost   -u   root //这样应该能够进入MySQL服务器

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

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

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

这样就能够在其它任何的主机上以root身份登陆啦!

 

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

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

 

防火墙开放3306端口

一、打开防火墙配置文件

?
1
vi  /etc/sysconfig/iptables

二、增长下面一行

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

三、重启防火墙

?
1
service  iptables restart
相关文章
相关标签/搜索