无法在 OSX 服务器上启动 mysqld - 之前可以运行

无法在 OSX 服务器上启动 mysqld - 之前可以运行

我们有一个在 mysql 支持的 OSX 服务器上运行的 Web 应用程序。该服务器运行的是 Darwin 内核 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 ?

我执行了 a 操作ps -Aef | grep mysql,发现没有其他正在运行的守护进程。ifconfig我看到环回设备实际上已启动。我尝试将 mysqld 绑定到其他端口 (3307),但得到了相同的错误(但针对的是 3307)。

我尝试以 root 身份启动 mysqld。我尝试通过传入参数 --user=_mysql 来启动它。

我不知道还能尝试什么。有什么建议吗?

编辑:@nambuls: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

我不确定为什么它不能创建测试文件 - /var/mysql 对于 _mysql:admin 来说是 775,而我以管理员身份启动了该过程。

答案1

尝试将其添加到您的 my.cnf 文件中:

  [mysqld]
  bind-address      = 127.0.0.1

请注意,这只允许本地 mysql 连接。如果您在同一主机上运行 web 服务器,则此绑定地址将适合您的设置。

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

答案2

好的 - 找到问题了。mysql 配置文件 (/etc/my.cnf) 设置为绑定与当前分配给网络设备的 IP 地址不同的 IP 地址。我将其更改为绑定当前地址,然后让它再次工作。提示是它无法绑定 3306,即使我在使用它时找不到任何东西。

答案3

您检查过 netstat 输出吗?

netstat -n -p tcp | grep 3306

查看是否有程序已在监听 mysql 端口?

如果它未返回任何内容,则表示该端口未被使用。

相关内容