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:这是我第一次在这里发帖,所以如果有格式问题,请原谅我
只需检查您的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 =''的条目)
希望这可以帮助