Mysql

無法在 OSX 伺服器上啟動 mysqld - 以前工作過

  • October 8, 2018

我們有一個在 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 ?

我做了一個ps -Aef | grep mysql並沒有發現其他正在執行的守護程序。我ifconfig看到環回設備實際上已啟動。我嘗試將 mysqld 綁定到不同的埠(3307),但得到了相同的錯誤(但針對 3307)。

我試過以root身份啟動mysqld。我已經嘗試通過參數–user=_mysql 啟動它。

我不知道還能嘗試什麼。有什麼建議?

編輯:@nambuls:netstat -n -p tcp | grep 3306什麼都不返回。

EDIT2:錯誤日誌還顯示警告 - 我之前沒有發布,因為它們只是“警告”,但它可能會有所幫助。

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 是 775 的 _mysql:admin,我以管理員身份啟動了該過程。

嘗試將此添加到您的 my.cnf 文件中:

 [mysqld]
 bind-address      = 127.0.0.1

請注意,這將只允許本地 mysql 連接。如果您在同一主機上執行網路伺服器,則此綁定地址適合您的設置。

如果 127.0.0.1 有效,您可以嘗試系統 IP 地址。通常不需要綁定地址。

好的 - 發現了問題。mysql 配置文件 (/etc/my.cnf) 被設置為綁定與目前分配給網路設備的 IP 地址不同的 IP 地址。我將其更改為綁定目前地址,並使其再次工作。提示是它無法綁定 3306,即使我在任何地方都找不到任何使用它的東西。

引用自:https://serverfault.com/questions/59232