MySQLconfiguration文件中的环境variables?

可以在Apache .conf文件中使用环境variables,但是MySQL有什么方法可以在MySQLconfiguration文件( my.ini / my.cfg )中使用它们?

我能find的最接近的是一个MySQL的man页面 ,它提到了一些variables,但并不指出如何使用它们,或者甚至是系统variables或内部variables。


在我的情况下,我需要一种方法来指定日志应该存储在系统临时目录的子目录中,但不知道如何指示。 例如:

 log-error="${temp}/MySQL_Logs/error.log" innodb_log_group_home_dir="%temp%/PS_Logs/Logs/MySQL/" ? 

你不能在configuration文件中做,但你可以修改启动命令来设置它们。

例如:

在控制台中设置LOG_DIR =“你的日志目录”。

然后修改启动脚本以包含日志错误选项。

 mysqld --log-error=$LOG_DIR/error_log.log 

可能不是最优雅的解决scheme,但也许静态configuration文件可以被dynamic内容replace:

您可以在日志文件path中放入一个FIFO。 在启动MySQL之前,您必须启动一个小型守护进程,以无限循环方式写入该FIFO。 比赛条件不应该成为一个问题在这里。

守护进程会向FIFO中写入两个数据块,首先是一个虚拟线路,如#环境感知configuration文件,以打开FIFO。 一旦第一次写入返回,它将获得读取过程的PID(例如,通过fuser),从/ proc / $ {PID} / environ中获取文件中出现的variables,创build例如sed的命令来replace引用并将sed输出写入FIFO。