设置外部绑定地址后MySQL不会启动

我想启用远程访问我的MySQL服务器,所以我已经设置了[mysqld]下的bind-address选项,如下所示:

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql bind-address=**.**.**.66 port=3306 # skip-networking # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 

当我评论绑定地址时,服务器正常启动。 但是,当我注释掉它不会重新启动。 该端口是开放的,并听取。

你能帮我解决这个问题吗? 谢谢

为什么你认为你需要使用bind-address来启用远程访问?

如果没有绑定地址选项,请运行命令netstat -ntlp | grep 3306 netstat -ntlp | grep 3306 。 如果你看到下面的输出,那么mysql正在监听与计算机关联的每个IP。

 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 23465/mysqld 

如果你想听特定的IP,你只需要绑定地址 。 如果你想听所有地址的请求,你应该把它留下来,或者把它设置为0.0.0.0 。 某些打包版本的mysql会附带启动/维护脚本,这些脚本将尝试访问127.0.0.1上的mysql。 如果你使用绑定地址选项,那么mysql只会被绑定到特定的IP地址,没有别的,可能会破坏你当前拥有的任何脚本。

也许这会帮助一些人:

看来,如果bind-address声明在2个地方,服务无法重新启动。

也许你很快扫描了你的/etc/conf/my.cnf文件,没有看到第二个bind-address外观。 但是请注意,该文件可能包含!includedir指令,其中一些包含的文件可能包含第二个bind-address

确保没有一个已经停止的mysqld实例已经启动。 检查

 ps aux|grep mysqld 

并杀死所有进程

 kill -9 

然后尝试再次启动mysqld。 注意在“S1”状态下的mysqld进程。