pfSense 上的新 MySQL 安装在启动时返回“错误 -c 选项”

pfSense 上的新 MySQL 安装在启动时返回“错误 -c 选项”

这是我第一次真正使用 FreeBSD,所以我可能会错过一些重大的事情,但这不太可能。

所以我想在我的 pfSense 服务器上设置 mysql,这样我就可以在 ntopng 上启用历史记录。我意识到这样做的危险,并且我正在采取必要的预防措施来确保我的系统安全。

我通过复制网址来安装它http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/并将它们粘贴到 中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

我用谷歌搜索了bad -c optionmysql 的含义并找到了零个答案。没有一页描述类似的问题。

我尝试删除/var/db/mysql/*,但没有什么区别。

我很困惑。提前致谢。

编辑:是的,有一个mysql用户。 pkg 自动生成了。

答案1

为了把事情搞清楚,pfSense 没有 mysql 包,所以你使用了官方的 FreeBSD 包,通过这样做

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

这可能是问题的根源。

pfSense 2.3 的基础系统和 pfSense 软件包基于 pkg,因此使用 pfSense 的 pkg 存储库,而标准 FreeBSD 软件包存储库不可用。从 FreeBSD 安装软件包在技术上是可行的,但由于潜在的依赖性问题,不建议这样做。使用 pkg add 将完整的 URL 传递给包是可行的,但需要小心以避免将来出现问题。

可以在此处找到本机 FreeBSD 软件包列表: http://pkg.freebsd.org/freebsd:10:x86:64/latest/All/

这是来自pfSense 文档

可能是 MySQL 包对用于解析参数列表的程序/库有一些依赖(无法从此处检查,因为您没有包含安装的所有包)或某些未附带的程序/库与 pfSense(但属于 FreeBSD 的一部分)。

因此,您必须检查是否安装了所有依赖项,这意味着您必须追踪错误的来源。

另外,一般不建议使用防火墙设备/操作系统来提供数据库服务。我并不是说永远不应该这样做,但这是一个不寻常的用例。

答案2

该错误是由于 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 应该是安全的,因为没有恶意的外部连接可以访问它,但这仍然不是一个好主意。

相关内容