我在 2014 年末的 Mac Mini 上运行 OS X Yosemite 10.10.5。这是我的开发服务器。我刚刚在这台机器上安装了 MySQL:“mysql --version”报告版本为“mysql Ver 14.14 Distrib 5.6.26,适用于 osx10.8 (x86_64) 使用 EditLine 包装器”。但我肯定下载并安装了“OS X 10.9”版本(我刚刚重新检查了 DMG 文件)。
无论如何,我试图让产品正常监听端口 3306,但遇到了一些困难。默认情况下,它似乎绑定到端口 3307,即使 my.cnf 如下所示:
[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。
这里发生了什么?
答案1
您可以尝试检查一下您的机器中是否存在以下文件吗?
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
检查端口是否定义在 3307 上,如果是,则更改为 3306 并重新启动服务。
答案2
这一定与 MySQL 系统首选项面板及其启动服务器的方式有关。我禁用并删除了首选项面板。当我在命令行上使用“mysqld_safe”启动/停止服务器时,它会使用 my.cnf 中指定的端口。