ERROR 2003(HY000):无法连接到'hostname'上的MySQL服务器(111)

ASe*_*ouf 7 mysql networking centos

在此先感谢您的帮助.

我正面临着mysql服务器的问题,这是本主题的标题,通过使用命令:

mysql -u myuser -pmypass -h `hostname`  db_name
Run Code Online (Sandbox Code Playgroud)

我收到了错误

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111)
Run Code Online (Sandbox Code Playgroud)

所以我检查了my.cnf文件,我没有"绑定地址"和"跳过网络"的行,虽然我尝试添加它们并重新启动,但没有改变任何东西.

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

此外,使用@'localhost'创建的用户可以正常使用命令行(不带-h选项).

更有趣的是,看起来完全相同的其他服务器在本地和远程使用第一个命令工作......

服务器使用CentOS 6.2运行

因此,如果有人对此事有任何想法,我会很高兴听到它

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

MiP*_*mic 7

只需检查您的my.cnf并从中更改

bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

如果您没有该参数,只需添加它即可.

绑定到0.0.0.0让你的mysql在每个配置的IP上都可用,因为你不能只在服务器上的两个或三个IP上绑定,配置可以是:localhost或所有.

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

127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)

还包含您的服务器主机名,例如:我的主机名是"db01",我的/ etc/hosts是

127.0.0.1 localhost db01
Run Code Online (Sandbox Code Playgroud)

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

'root'@'localhost'
'root'@'hostname'
'root'@'127.0.0.1'
'root'@'%'
Run Code Online (Sandbox Code Playgroud)

(出于安全问题,也一定要从mysql.user中删除那些带有user =''的条目)

希望这可以帮助