mysql docker 中配置日志文件挂载到本地目录

一、说明

1.docker运行命令如下:(dockerun.sh文件内容) 

DB_HOME=/home/mysql
DB_CONF_PATH=$DB_HOME/conf:/etc/mysql/conf.d
DB_LOG_PATH=$DB_HOME/logs:/var/log/mysql
DB_DATA_PATH=$DB_HOME/data:/var/lib/mysql
docker run -p 3306:3306 --name mysql -v $DB_CONF_PATH -v $DB_LOG_PATH -v $DB_DATA_PATH -e MYSQL_ROOT_PASSWORD=rootatdb01 -d mysql:5.7.19

2.目录如下:

[root@host /home/mysql]# ls
conf  data  dockerun  logs

3.配置文件/home/mysql/conf/my.cnf内容:(此处的log-error的正确配置应该是容器内的路径)

[root@host /home/mysql/conf]# cat my.cnf
[mysqld]
log-error=/home/mysql/logs/error.log
lower_case_table_names=1

4.现象:docker start mysql,启动后 容器状态处于Exited(1),失败退出。用docker logs mysql 无法显示任何日志。

二、解决:

1、修改挂载到本地的日志目录的权限。chown -R 999:999 /home/mysql/logs

2、my.cnf文件中log-error=映射到容器中的日志目录。

三、容器挂载本地的my.cnf配置文件的正确内容:

[mysqld]
log-error=/var/log/mysql/error.log
#log=/var/log/mysql/mysql.log
slow_query_log =ON
slow_query_log_file=/var/log/mysql/slowquery.log
long_query_time=3
log-queries-not-using-indexes=/var/log/mysql/nouseindex.log

lower_case_table_names=1

 

你可能感兴趣的:(docker,mysql)