我想启用远程访问我的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进程。