2016-12-15 6 views
0

Проблема:MySQL Автоматически Перезапуск

MySQL завершает работу после запуска - даже после того, как отчеты MYSQLD "готовы для подключения". Я просто использую общедоступный образ mysql.

Кто-нибудь знает, есть ли какие-то настройки или ошибки, которые могут привести к перезапуску?

Журналы не содержат ошибок, которые указывали бы на перезапуск. После одного перезапуска база данных работает нормально, но я бы ДЕЙСТВИТЕЛЬНО хотел избежать этого первоначального перезапуска, так как это сильно затормозило автоматизацию.

Environment:

MySQL Версия: 5.6.33 Docker Image

Платформа: Ubuntu Trusty

Докер-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 

После этого нормального отключения он снова запускается и снова сообщает «готовность к подключению», после чего он, похоже, не встает.

+0

Администраторы баз данных были бы в гораздо лучшем положении, чтобы ответить на этот вопрос, чем разработчики, потому что этот вопрос касается операций, а не разработки. – Shadow

+0

Странно, я использую 'mysql: last' образ, и он работает. Можете ли вы попробовать mysql вместо этого? (если это так же, как 'mysql: latest'), вы также делаете что-нибудь лишнее в этом контейнере, например, импортируете БД или что-то еще? – ReynierPM

+0

Я пробовал использовать 5.7, но столкнулся с тем же вопросом, что и я - я могу попробовать абсолютное последнее, но хотел сохранить версию 5.x по соображениям четности с помощью produtction. @ReynierPM Я заметил, что при первом запуске он сообщает «порт: 0», второй раз, когда он сообщает «готов к подключению», он показывает порт, который я указал, «порт: 3307» – sager89

ответ

1

По-видимому, это ожидаемое поведение, хотя это не легко видно из журналов. См. https://github.com/docker-library/mysql/issues/245

Способ, которым я работал, состоял в том, чтобы проанализировать журналы, которые ищут socket: '/var/run/mysqld/mysqld.sock' port: 3307 MySQL Community Server (GPL), перед тем как попытаться подключиться к базе данных.

+0

Обратите внимание, что я указываю 3307, но по умолчанию mysql запускается на 3306, поэтому вам, возможно, придется использовать это значение, если вы идете с этим подходом. – sager89

0

Я тоже сталкивался с этой проблемой. Мне удалось пройти мимо него, выбрав alternate image. Этот компонент добавляет изображение к изображению, а также обеспечивает поставку сценария, который будет запущен, когда mysql будет готов.