Freebsd

pfSense 上的新 MySQL 安裝在啟動時返回“Bad -c option”

  • March 11, 2018

這是我第一次真正使用 FreeBSD,所以我可能會錯過一些重要的東西,但不太可能。

所以我想在我的 pfSense 伺服器上設置 mysql,這樣我就可以在 ntopng 上啟用歷史記錄。我知道這樣做的危險,我正在採取必要的預防措施來確保我的系統安全。

我通過從http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/複製 URL並將它們粘貼到中來安裝它pkg add,這很有效。我得到了 mysql56-server 並安裝了它的所有依賴項。

因為我在 pfSense 上,所以我必須從它開始,service mysql-server onestart因為沒有 rc.conf,但是當我這樣做時,我得到了這個:

Starting mysql.
Bad -c option
/usr/local/etc/rc.d/mysql-server: WARNING: failed to start mysql

我用Google搜尋了bad -c optionmysql 的含義,發現答案為零。沒有一頁描述了類似的問題。

我嘗試刪除/var/db/mysql/*,但沒有任何區別。

我難住了。提前致謝。

**編輯:**是的,有一個mysql使用者。pkg 自動完成。

該錯誤是由於 freebsd 服務 shell 腳本中某種錯誤的轉義方法造成的。su -c 'sh -c "..."'當您指定特定使用者來執行服務時,它會嘗試,而 mysql 似乎會導致此問題。

我進入/usr/local/etc/rc.d/mysql-server並註釋掉了第 54 行mysql_user="mysql"並將第 55 行更改為mysql_limits_args="-e"現在 mysql 正常啟動,因為上述程式碼沒有執行。

不要在允許任何公共連接到數據庫的系統上執行此操作!如果有人發現了遠端程式碼執行漏洞,那麼你真的被搞砸了,因為 mysql 現在以 root 身份執行,所以攻擊者可以讀/寫你伺服器上的任何文件!在 localhost 上為 ntopng 使用它應該是安全的,因為沒有惡意的外部連接可以訪問它,但這仍然不是一個好主意。

只是為了弄清楚,pfSense 沒有 mysql 包,所以你使用了官方的 FreeBSD 包,通過做

pkg add http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/mysql80-server-8.0.2_1.txz

這可能是問題的根源。

pfSense 2.3 基於 pkg 用於基本系統和 pfSense 軟體包,因此使用來自 pfSense 的 pkg 儲存庫,而標準的 FreeBSD 軟體包儲存庫不可用。從 FreeBSD 安裝軟體包在技術上是可行的,但由於潛在的依賴性問題,不建議這樣做。使用 pkg add 將完整的 URL 傳遞給包是可行的,但需要注意避免將來出現問題。

可以在此處找到本機 FreeBSD 軟體包的列表: http ://pkg.freebsd.org/freebsd:10:x86:64/latest/All/

這來自pfSense 文件

可能是 MySQL 包對解析參數列表的程序/庫有一些依賴關係(無法從這裡檢查,因為您沒有包含所有安裝的包)或一些未提供的程序/庫與 pfSense(但是 FreeBSD 的一部分)。

因此,您必須檢查是否安裝了所有依賴項,這意味著您必須追踪錯誤的來源。

附帶說明一下,通常不建議使用防火牆設備/作業系統來為數據庫提供服務。我並不是暗示永遠不應該這樣做,但這是一個不尋常的案例。

引用自:https://unix.stackexchange.com/questions/427586