pfSense 上的新 MySQL 安裝在啟動時返回“Bad -c option”
這是我第一次真正使用 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 option
mysql 的含義,發現答案為零。沒有一頁描述了類似的問題。我嘗試刪除
/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 的一部分)。
因此,您必須檢查是否安裝了所有依賴項,這意味著您必須追踪錯誤的來源。
附帶說明一下,通常不建議使用防火牆設備/作業系統來為數據庫提供服務。我並不是暗示永遠不應該這樣做,但這是一個不尋常的案例。