7

在此先感谢您的帮助。

通过使用以下命令,我遇到了 mysql 服务器的问题,这是本主题的标题:

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

我得到错误

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

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

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

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

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

服务器运行 CentOS 6.2

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

PS:第一次发帖,如有格式问题,请见谅

4

4 回答 4

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.user 中删除那些带有 user='' 的条目)

希望这可以帮助

于 2013-09-04T08:04:32.867 回答
4

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

如果将配置更改为:

bind-address = 127.0.0.1

如上所述,您正在做的是将服务器配置为拒绝除来自本地主机(本身)的连接之外的所有连接。

bind-address = 0.0.0.0

在大多数情况下就足够了,并使 mysql 监听系统上的所有接口,这使得它可以通过主机可访问的所有地址进行访问。

于 2014-07-08T07:31:41.820 回答
0

在防火墙上启用端口并尝试...

在终端中,执行命令为root.

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
于 2014-08-26T11:09:41.380 回答
-2

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

于 2014-11-28T07:30:14.650 回答