我有一个带有!includedir
指令的 MySQL 配置文件。当镜头检查文件时,该指令似乎正确显示:
$ sudo augtool print /files/etc/my.cnf | fgrep includedir
/files/etc/my.cnf/!includedir = "/etc/mysql/conf.d/"
但是,虽然 augtool 在检查/etc/my.cnf时会打印出路径,但如果我尝试打印或检查实际节点,它会一直抱怨路径表达式无效。例如:
$ sudo augtool
augtool> print /files/etc/my.cnf/!includedir
error: Invalid path expression
error: empty name
/files/etc/my.cnf/|=|!includedir
如何使用 Augeas 1.0.0 管理/etc/my.cnf文件!includedir
中的指令?
!
不能在路径中使用。但是,您可以使用该label()
功能来选择该节点:路径表达式记录在 Augeas wiki 上。
这是一个常见问题,mysql 使用 .ini 之类的配置文件,并且每个工具都试图这样处理它。我没有找到正常的解决方案,但你总是可以分叉/重写当前的 .ini 解析方法。这不是一件好事。
最后我通过我的网站解决了这个问题,就像你可以同时拥有 2 个 my.cnf 文件 /etc/my.cnf 和 ~/.my.cnf 我试图将我的客户端绑定移动到这两个文件。(好的,当它们是服务器配置选项时,我不知道该怎么做,期待黑客攻击。):(