以下容器按预期使用给定的配置文件工作。但是如果我将innodb_log_file_size从当前的419增加到512,那么容器就无法启动。小额外空间如何阻止容器启动?
docker run -v /my/custom:/etc/mysql/conf.d -v /tmp/mydata/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc -d mysql:5.5
cat /my/custom/config-file.cnf
[mysqld]
#datadir=/var/lib/mysql
socket=/tmp/mysql.sock
user=root
#innodb_force_recovery=6
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_buffer_pool_size = 2G
innodb_file_per_table=1
innodb_log_file_size=419M
#innodb_log_file_size=519M
innodb_log_buffer_size=500K
innodb_thread_concurrency=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
答案 0 :(得分:0)
这是因为mysql在退出之前等待30秒(仅!)。由于创建更大的日志文件需要时间,我们需要将检查时间从30秒增加到180秒。
可以在此处查看源代码的更改...
https://github.com/docker-library/mysql/compare/master...shantanuo:master
我用这个改变创建了另一个图像:
git clone https://github.com/shantanuo/mysql
cd mysql/5.5
docker build -t shantanuo/mysql .
docker push shantanuo/mysql
现在测试:
docker run -v /my/custom:/etc/mysql/conf.d -v /tmp/mydata/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc -d shantanuo/mysql