Search code examples
mysqldockerdocker-composemysql-5.6

MySQL Automatically Restarting


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.


Solution

  • 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.