MySQL绑定到端口3307而不是端口3306


9

我在2014年末的Mac Mini上运行OS X Yosemite 10.10.5。这是我的开发服务器。我刚刚在这台机器上安装了MySQL:“ mysql --version”报告版本为“使用EditLine包装程序用于osx10.8(x86_64)的mysql Ver 14.14 Distrib 5.6.26”。我确实下载并安装了“ OS X 10.9”版本(我只是重新检查了DMG文件)。

无论如何,我试图使产品正常监听端口3306,但在使其执行时遇到了一些困难。默认情况下,即使my.cnf如下所示,它似乎也已绑定到端口3307:

[mysqld]
bind-address = 0.0.0.0
port         = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

(最后一行已在/ usr / local / mysql /中的默认行中)

查看正在运行的进程,我可以看到命令行(ps ax | grep mysql)为3307:

40958   ??  Ss     0:00.38 /usr/local/mysql/bin/mysqld \\
--user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data \\
--plugin-dir=/usr/local/mysql/lib/plugin \\
--log-error=/usr/local/mysql/data/mysqld.local.err \\
--pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307

(我目前正在使用MySQL系统偏好设置面板来启动和停止它,而不是直接从命令行启动它)

要从客户端访问它,我必须在命令行上显式设置端口

$ mysql -u smcphee -h 192.168.x.x -P 3307 -p

对于踢球,我编辑了my.cnf以指定其他随机端口。服务器仍绑定到端口3307。在磁盘上可能覆盖它的任何地方,我都找不到任何其他my.cnf。

这里发生了什么?

Answers:


10

您可以尝试检查计算机中是否存在以下文件吗?

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

检查端口是否在3307上定义,如果是,请更改为3306并重新启动服务。


是的,是的。并且其中包含以下行:<string>-port = 3307 </ string>为什么默认情况下会这样做?
苏格兰

1
我猜是因为这个文件启动了服务,所以我不确定,但是也许如果您删除该行,服务将占用my.cnf文件上的端口。
维克多·马罗昆

哦,是的,当然。“为什么”我的意思是为什么它将以这样的值而不是预期的,明智的默认值安装文件。(我当然认为安装程序包已经安装了启动守护程序……因为还会有其他内容?)
苏格兰

1

这必须与MySQL系统首选项面板及其启动服务器的方式有关。我禁用并删除了首选项面板。当我在命令行上使用“ mysqld_safe”启动/停止服务器时,它将使用my.cnf中指定的端口。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.