Problem:
MySQL is shutting down after startup - even after mysqld reports "ready for connections". I'm simply using the publicly available mysql image.
Does anyone know if there is some kind of setting or error that would cause a restart?
The logs don't include any errors that would indicate a restart would happen. After the one restart, the database appears to work fine, but I'd REALLY like to avoid this initial restart, as it screws up automation pretty bad.
Environment:
MySQL Version: 5.6.33 Docker Image
Platform: Ubuntu Trusty
Docker-Compose Entry:
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
Logs:
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
After this normal shutdown, it starts up again and will report "ready for connections" again, after which it appears to stay up.
Apparently this is expected behavior, although it's not readily clear from the logs. See https://github.com/docker-library/mysql/issues/245
The way I worked around this was to parse the logs looking for socket: '/var/run/mysqld/mysqld.sock' port: 3307 MySQL Community Server (GPL)
to be present before attempting to connect to the database.