没有在日志文件中写入MySQL的Docker容器

时间:2014-11-20 17:28:22

标签: mysql centos docker

我正在处理现有的Dockerfile,我被要求尽可能少地修改。 docker镜像基于CentOS Linux映像,应该包含MySQL服务。

我想为所有查询(即general_log文件中的general_log_file/etc/my.cnf变量)启用详细日志记录。

MySQL服务需要在mysqld_safe模式下运行,并且我已经检查了我添加的配置行(请参阅下面的printf)是在[mysqld_safe]之后/etc/my.cnf文件中的行,所以我假设此设置应该没问题。

到目前为止我所做的是在Dockerfile以下陈述中添加:

RUN groupadd -r mysql && useradd -r -g mysql mysql

# [...] Lots of Mysql stuff regarding importing DBs etc.

# Adding some more configuration details to the database service
RUN printf '\n%s\n%s\n%s\n\n' '# Set General Log to log all the queries' 'general_log=1' 'general_log_file=/var/log/mysql_general.log' >> /etc/my.cnf

# Getting the new log file prepared to get written by the MySQL service
RUN touch /var/log/mysql_general.log
RUN chown mysql.mysql /var/log/mysql_general.log

# MySQL Port
EXPOSE 3306

ENTRYPOINT ["mysqld_safe"]

构建docker镜像并运行docker容器后,我在/var/log文件夹中看到了这一点:

-rw-r-----. 1 mysql mysql   5108 Nov 20 17:07 mysqld.log
-rw-r--r--. 1 mysql mysql   3880 Nov 20 17:44 mysql_general.log

如果我为mysqld.logERROR等关键字点击general,我找不到任何有趣的内容。 mysql_general.log文件为空。

我也看到了这一点:

mysql> show variables like '%general_log%';
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
2 rows in set (0.00 sec)

mysql>

我无法在日志文件中写入SQL查询,为什么?

0 个答案:

没有答案