无法在OSX服务器上启动mysqld – 以前工作

我们有一个在MySQL支持的OSX服务器上运行的Web应用程序。 服务器运行达尔文内核9.8.0。 Mysql版本是5.0.67。

以前工作正常,我们不完全确定可能发生了什么变化。 计算机已经重新启动,看看是否会启动MySQL。 不幸的是,这意味着我不能告诉你在这之前它是否被另一个用户错误地重新引导,并且导致了这个问题。

我得到的错误是:

/usr/libexec/mysqld: File './mysql-bin.124367' not found (Errcode: 13) 090826 14:42:50 [ERROR] Could not use mysql-bin for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it. 

那个找不到的文件确实存在…所以,我关掉了my.cnf中的日志,看看还有什么可能发生。 现在我得到的错误是:

 090826 14:52:16 [ERROR] Can't start server: Bind on TCP/IP port: Can't assign requested address 090826 14:52:16 [ERROR] Do you already have another mysqld server running on port: 3306 ? 

我做了一个ps -Aef | grep mysql ps -Aef | grep mysql ,发现没有其他正在运行的守护进程。 使用ifconfig我看到回送设备实际上是up的。 我尝试绑定mysqld到不同的端口(3307),但得到了同样的错误(但为3307)。

我试过以root身份启动mysqld。 我试着开始传递参数–user = _mysql。

我无法弄清楚还有什么可以尝试的。 有什么build议么?

编辑:@ nambuls: netstat -n -p tcp | grep 3306 netstat -n -p tcp | grep 3306什么都不返回。

编辑2:错误日志还显示警告 – 我以前没有发布,因为他们只是“警告”,但它可能有所帮助。

 090826 15:16:02 [Warning] Can't create test file /var/mysql/tanglewood.lower-test 090826 15:16:02 [Warning] Can't create test file /var/mysql/tanglewood.lower-test 

我不知道为什么它不能创buildtesting文件 – 对于_mysql:admin,/ var / mysql是775,我以pipe理员身份启动了该进程。

试试把这个添加到你的my.cnf文件中:

  [mysqld] bind-address = 127.0.0.1 

请注意,这只会允许本地的mysql连接。 如果你在同一台主机上运行你的networking服务器,这个绑定地址对于你的设置就没问题了。

如果127.0.0.1有效,您可以尝试系统IP地址。 通常不需要绑定地址。

好的 – 发现问题了。 mysqlconfiguration文件(/etc/my.cnf)被设置为绑定与当前分配给networking设备的IP地址不同的IP地址。 我改变它绑定当前的地址,并重新工作。 提示是,它不能绑定3306,即使我找不到任何地方使用它。

你有检查一个netstat输出?

 netstsat -n -p tcp | grep 3306 

看是否有一个程序已经在MySQL端口上侦听?