运行 MariaDB 服务器 5.5 并在多个无盘节点上共享 my.cnf

运行 MariaDB 服务器 5.5 并在多个无盘节点上共享 my.cnf

我正在尝试使用 Redhat Enterprise 7.8 在无盘映像中安装 MariaDB Server 5.5。

我遇到的问题是有一个无盘映像,其中一个/etc/my.cnf被部署到所有节点,然后所有节点都指向共享 NFS 存储上的同一个数据目录。

我想做的是以某种方式确定/etc/my.cnf它在哪个节点上,并写入共享存储上的其他目录(即datadir = /sharednfs/output/node1,2,3,4/mariadb)。这可能吗?

根据我的研究,似乎唯一的方法是为每个节点设置单独的无盘映像。我找不到任何my.cnf允许主机名变量或类似内容的参数。

答案1

我手边没有 RHEL 系统,但假设它与 centos7 非常接近。

当然,看起来您可以通过以mariadb.service某种方式覆盖单位来轻松处理这个问题。

也许添加一个脚本,该脚本将用类似于的ExecStartPre符号链接替换 ​​my.cnf 。/etc/my.cnf/nfspath/$(hostname -f)_my.cnf

或者也许有一种方法可以覆盖 ExecStart。我认为$()这里无效,但如果是这样的。也许可以通过 运行它sh -c

ExecStart=/usr/bin/mysqld_safe --basedir=/usr --defaults-file=/nfspath/$(hostname -f)_my.cnf

答案2

我能够通过为 mariadb systemd 服务创建一个覆盖文件并添加来使其工作

ExecStart=/usr/bin/mysqld_safe --defaults-file=/nfspath/%H_my.cnf --basedir=/usr

需要澄清的是,--defaults-file 选项必须是行中的第一个参数,否则它将不起作用。再次感谢你们两位的意见!

相关内容