2013-08-06 61 views
7

在此先感谢您的帮助。错误2003(HY000):无法连接到'主机名'上的MySQL服务器(111)

我现在面临与MySQL服务器的问题,这也是本专题的标题,使用命令:

mysql -u myuser -pmypass -h `hostname` db_name 

我得到的错误

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111) 

所以我检查了我。 cnf文件,我没有“绑定地址”和“跳过网络”的行,尽管我尝试添加它们并重新启动,但没有任何改变。

除此之外,sql日志中没有错误,我们可以(通过HeidiSQL)远程连接到服务器,知道用户是myuser"@"%。 Mysql在端口3306上侦听,所以它没问题

此外,用@'localhost'创建的用户可以在命令行(不带-h选项)下正常工作。

什么是更有趣的是,其他服务器的本地和远程长得一模一样的工作与第一命令

服务器用CentOS的6.2运行

因此,如果任何人有一个想法这件事情我会很高兴听到这个消息

PS:这是我第一次在这里发帖,所以如果有格式问题,请原谅我

+0

'hostname'是从字面上传递的?如果是,请将其替换为您的服务器(或localhost)的地址 –

+1

否它在“重音”之间传递(因此它是执行的unix命令) – ASettouf

回答

7

只需从

检查您的my.cnf和变化
bind-address = 0.0.0.0 

bind-address = 127.0.0.1 

,如果你没有这样的参数,只是将它加入。

绑定到0.0.0.0让你的mysql在每个IP配置的原因上都可用,你不能仅仅在服务器上的两个或三个IP上绑定,配置可以是:localhost或一切。

然后检查你的/ etc/hosts文件,并确保该行

127.0.0.1 localhost 

也包含你的服务器的主机名,作为例子:我的主机名是 “DB01”,我的/ etc/hosts文件是

127.0.0.1 localhost db01 

请记住,在通过yum进行安装过程之后(我不知道CentOS是否为您自动执行此操作,我只知道Gentoo没有),您必须执行mysql_install_db,然后为root用户配置密码,请务必确保您设置了密码:

'root'@'localhost' 
'root'@'hostname' 
'root'@'127.0.0.1' 
'root'@'%' 

(对于安全问题也一定要从mysql中删除。用户与用户=“”)

那些希望进入这有助于

4

迟来的回应,但我相信,错误消息意味着您正试图将服务器连接到未在侦听该接口上。

如果您更改配置到:

bind-address = 127.0.0.1

按照以上建议,你在做什么是配置服务器拒绝除了那些从本地主机(本身)的所有连接。

bind-address = 0.0.0.0

在大多数情况下已经足够,并且使MySQL的监听系统,这使得它通过所有地址访问该主机在访问的所有接口。

0

开启防火墙端口,并尝试...

在终端

, 执行命令为root

firewall-cmd --zone=public --add-port=3306/tcp --permanent 
firewall-cmd --reload 
-2

有我遇到了一个原因,你的MySQL服务器的IP地址冲突与本地网络中的其他服务器。

相关问题