提前感谢您的帮助。
我正面临着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运行
所以,如果有人对此事有所了解,我会很高兴听到它
P.S:这是我第一次在这里发帖,所以如果有格式问题,请原谅我
答案 0 :(得分: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 =''的条目)
希望这会有所帮助
答案 1 :(得分:4)
迟来的响应,但我认为错误消息意味着您尝试连接的服务器没有在该接口上侦听。
如果您将配置更改为:
bind-address = 127.0.0.1
如上所述,您正在做的是配置服务器以拒绝除localhost(本身)之外的所有连接。
bind-address = 0.0.0.0
在大多数情况下是足够的,并使mysql监听系统上的所有接口,这使得它可以通过主机可访问的所有地址访问。
答案 2 :(得分:0)
在防火墙上启用端口并尝试...
在终端,
执行命令为root
。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
答案 3 :(得分:-2)
我遇到了MySQL服务器与本地网络中其他服务器的 IP地址冲突的原因。