在MAMP上运行mysql的问题

时间:2012-07-15 11:17:27

标签: php mysql ruby-on-rails gem mamp

我试图让MAMP上的MySQL服务器运行,但无济于事。

它工作正常,但是当我开始使用Ruby on Rails时我停止使用MAMP。现在我想处理一些生活在我的MAMP安装中的旧PHP项目,我无法启动它们。最令人沮丧的。

我怀疑它与安装了RoR的MySQL gem有关,但我不确定如何检查或如何解决冲突。

我的问题,基本上是“我怎样才能启动mySql服务器?”

Os:10.7.4 MAMP V:1.8.4

我查了一下日志:

tail mysql_error_log.err -n 100的输出:

==> mysql_error_log.err <==
120715 12:11:41 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
120715 12:11:41 [ERROR] Do you already have another mysqld server running on port: 3306 ?
120715 12:11:41 [ERROR] Aborting

120715 12:11:41  InnoDB: Starting shutdown...
120715 12:11:42  InnoDB: Shutdown completed; log sequence number 0 44233
120715 12:11:42 [Warning] Forcing shutdown of 2 plugins
120715 12:11:42 [Note] /Applications/MAMP/Library/libexec/mysqld: Shutdown complete

120715 12:11:42 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

更新

我已按照建议尝试编辑正在运行的实例的my.cnf。我点了这个我正在运行的locate my.cnf来查找文件。

返回了两个结果,一个是在MAMP PRO(我没有使用)和另一个(基于Macports)。我选择修改lines 15 and 34 of the Macports file.。然后我重新启动了机器。

看来我得到了同样的错误:

==> mysql_error_log.err <==
120715 13:37:26 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
120715 13:37:26 [ERROR] Do you already have another mysqld server running on port: 3306 ?
120715 13:37:26 [ERROR] Aborting

120715 13:37:26  InnoDB: Starting shutdown...
120715 13:37:27  InnoDB: Shutdown completed; log sequence number 0 44233
120715 13:37:27 [Warning] Forcing shutdown of 2 plugins
120715 13:37:27 [Note] /Applications/MAMP/Library/libexec/mysqld: Shutdown complete

120715 13:37:27 mysqld_safe mysqld from pid file /Applications/MAMP/tmp/mysql/mysql.pid ended

3 个答案:

答案 0 :(得分:1)

  

120715 12:11:41 [错误]无法启动服务器:绑定TCP / IP端口:已在使用的地址

     

120715 12:11:41 [错误]你是否已在端口上运行另一个mysqld服务器:3306?

您已经拥有使用端口3306的MySQL或其他程序。您可以终止现有程序或使用其他端口。

可以在MySQL配置文件my.cnf中更改端口。

答案 1 :(得分:0)

您有没有找到解决方案?这不是一个答案,而是一个让旧的PHP项目工作的临时黑客。正如Joni所说,终止MySQL将会成功。我是这样做的:MySQL的Macports / Homebrew版本应该在启动时启动,所以当MAMP启动时,只有Apache启动。在Activity Monitor中,搜索'mysql' - 应该出现1或2个'mysqld'实例。退出这些并立即点击MAMP中的“Start Servers”(FWIW,我在MAMP中使用默认的Apache和MySQL端口(80&amp; 3306))。它花了几次尝试,但最终我击败了试图重新启动的另一个守护进程。这是一个暂时的,丑陋的解决方案,但当我时间不够时,它让我进入了一个旧项目。我仍然在寻找一个永久的解决方案,一个不涉及完全废弃一切并重新开始的解决方案。

编辑:使用终端杀死mysqld的更好方法:killall mysqld

答案 2 :(得分:0)

我在Mac上,我在某个时候安装了MyMql,分别是MAMP。此版本的MySql阻止了MAMP的MySql服务器。

打开系统偏好设置,如果在底行看到MySQL图标,请将其打开。在这里它告诉我,我有一个MySQL服务器实例正在运行。停止服务器并取消选中&#34;在启动时自动启动MySQL服务器&#34;

希望这有助于某人!