MySQL自动重启

问题

即使在mysqld报告“准备连接”之后,MySQL也会在启动后closures。 我只是使用公开的MySQL图像。

有谁知道是否有某种设置或错误,会导致重新启动?

日志不包含任何可能表示重新启动的错误。 重新启动后,数据库似乎工作正常,但我真的想避免这个初始重新启动,因为它把螺丝自动化很糟糕。

环境

MySQL版本:5.6.33 Docker镜像

平台:Ubuntu Trusty

Docker-Compose条目:

myDatabase: image: mysql:5.6 environment: - MYSQL_DATABASE=myDatabase - MYSQL_ROOT_PASSWORD=FakeyMcFakeFace command: - --port=3307 - --sql-mode=NO_ENGINE_SUBSTITUTION - --max_allowed_packet=16M 

日志:

 Initializing database 2016-09-12 16:17:39 0 [Note] /usr/sbin/mysqld (mysqld 5.6.33) starting as process 36 ... 2016-09-12 16:17:39 36 [Note] InnoDB: Using atomics to ref count buffer pool pages 2016-09-12 16:17:39 36 [Note] InnoDB: The InnoDB memory heap is disabled 2016-09-12 16:17:39 36 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2016-09-12 16:17:39 36 [Note] InnoDB: Memory barrier is not used 2016-09-12 16:17:39 36 [Note] InnoDB: Compressed tables use zlib 1.2.8 2016-09-12 16:17:39 36 [Note] InnoDB: Using Linux native AIO 2016-09-12 16:17:39 36 [Note] InnoDB: Using CPU crc32 instructions 2016-09-12 16:17:39 36 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2016-09-12 16:17:39 36 [Note] InnoDB: Completed initialization of buffer pool 2016-09-12 16:17:39 36 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! 2016-09-12 16:17:39 36 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB 2016-09-12 16:17:39 36 [Note] InnoDB: Database physically writes the file full: wait... 2016-09-12 16:17:39 36 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB 2016-09-12 16:17:39 36 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB 2016-09-12 16:17:40 36 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2016-09-12 16:17:40 36 [Warning] InnoDB: New log files created, LSN=45781 2016-09-12 16:17:40 36 [Note] InnoDB: Doublewrite buffer not found: creating new 2016-09-12 16:17:40 36 [Note] InnoDB: Doublewrite buffer created 2016-09-12 16:17:40 36 [Note] InnoDB: 128 rollback segment(s) are active. 2016-09-12 16:17:40 36 [Warning] InnoDB: Creating foreign key constraint system tables. 2016-09-12 16:17:40 36 [Note] InnoDB: Foreign key constraint system tables created 2016-09-12 16:17:40 36 [Note] InnoDB: Creating tablespace and datafile system tables. 2016-09-12 16:17:40 36 [Note] InnoDB: Tablespace and datafile system tables created. 2016-09-12 16:17:40 36 [Note] InnoDB: Waiting for purge to start 2016-09-12 16:17:40 36 [Note] InnoDB: 5.6.33 started; log sequence number 0 2016-09-12 16:17:42 36 [Note] Binlog end 2016-09-12 16:17:42 36 [Note] InnoDB: FTS optimize thread exiting. 2016-09-12 16:17:42 36 [Note] InnoDB: Starting shutdown... 2016-09-12 16:17:45 36 [Note] InnoDB: Shutdown completed; log sequence number 1625977 2016-09-12 16:17:45 0 [Note] /usr/sbin/mysqld (mysqld 5.6.33) starting as process 59 ... 2016-09-12 16:17:45 59 [Note] InnoDB: Using atomics to ref count buffer pool pages 2016-09-12 16:17:45 59 [Note] InnoDB: The InnoDB memory heap is disabled 2016-09-12 16:17:45 59 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2016-09-12 16:17:45 59 [Note] InnoDB: Memory barrier is not used 2016-09-12 16:17:45 59 [Note] InnoDB: Compressed tables use zlib 1.2.8 2016-09-12 16:17:45 59 [Note] InnoDB: Using Linux native AIO 2016-09-12 16:17:45 59 [Note] InnoDB: Using CPU crc32 instructions 2016-09-12 16:17:45 59 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2016-09-12 16:17:45 59 [Note] InnoDB: Completed initialization of buffer pool 2016-09-12 16:17:45 59 [Note] InnoDB: Highest supported file format is Barracuda. 2016-09-12 16:17:45 59 [Note] InnoDB: 128 rollback segment(s) are active. 2016-09-12 16:17:45 59 [Note] InnoDB: Waiting for purge to start 2016-09-12 16:17:46 59 [Note] InnoDB: 5.6.33 started; log sequence number 1625977 2016-09-12 16:17:46 59 [Note] Binlog end 2016-09-12 16:17:46 59 [Note] InnoDB: FTS optimize thread exiting. 2016-09-12 16:17:46 59 [Note] InnoDB: Starting shutdown... 2016-09-12 16:17:48 59 [Note] InnoDB: Shutdown completed; log sequence number 1625987 WARNING: Default config file /etc/mysql/my.cnf exists on the system This file will be read by default by the MySQL server If you do not want to use this, either remove it, or use the --defaults-file argument to mysqld_safe when starting the server Database initialized MySQL init process in progress... [Note] mysqld (mysqld 5.6.33) starting as process 82 ... [Note] Plugin 'FEDERATED' is disabled. [Note] InnoDB: Using atomics to ref count buffer pool pages [Note] InnoDB: The InnoDB memory heap is disabled [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins [Note] InnoDB: Memory barrier is not used [Note] InnoDB: Compressed tables use zlib 1.2.8 [Note] InnoDB: Using Linux native AIO [Note] InnoDB: Using CPU crc32 instructions [Note] InnoDB: Initializing buffer pool, size = 128.0M [Note] InnoDB: Completed initialization of buffer pool [Note] InnoDB: Highest supported file format is Barracuda. [Note] InnoDB: 128 rollback segment(s) are active. [Note] InnoDB: Waiting for purge to start [Note] InnoDB: 5.6.33 started; log sequence number 1625987 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 726b21ff-7904-11e6-a7fd-0242ac130006. stdout: [Note] Event Scheduler: Loaded 0 events [Note] mysqld: ready for connections. Version: '5.6.33' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server (GPL) Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. 2016-09-12 16:17:52 82 [Note] mysqld: Normal shutdown 

在正常关机之后,它再次启动,并且将再次报告“准备好连接”,此后似乎保持不变。

显然这是预期的行为,尽pipe从日志中不太清楚。 请参阅https://github.com/docker-library/mysql/issues/245

我解决这个问题的方法是parsing查找socket: '/var/run/mysqld/mysqld.sock' port: 3307 MySQL Community Server (GPL)的日志socket: '/var/run/mysqld/mysqld.sock' port: 3307 MySQL Community Server (GPL)在尝试连接到数据库之前就存在。

我也面对这个问题。 我能够通过select一个替代图像来通过它。 这一个增加了一个健康检查的形象,还提供了一个脚本,将在mysql准备就绪时运行。