Назад | Перейти на главную страницу

Mysql с выскочкой не запускается

После обновления сегодня утром у нас возникли странные проблемы. Прежде всего apt-get upgrade сбой во время настройки с сообщением о том, что не удалось запустить службу. Затем мы попытались dpkg-reconfigure, apt-get purge с последующим apt-get install и apt-get install --reinstall, но не повезло.

После некоторого времени попыток разобраться в этом мы попытались запустить mysqld просто как root:

# mysqld --verbose
130809 15:31:15 [Note] Plugin 'FEDERATED' is disabled.
130809 15:31:15 InnoDB: The InnoDB memory heap is disabled
130809 15:31:15 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130809 15:31:15 InnoDB: Compressed tables use zlib 1.2.3.4
130809 15:31:15 InnoDB: Initializing buffer pool, size = 128.0M
130809 15:31:15 InnoDB: Completed initialization of buffer pool
130809 15:31:15 InnoDB: highest supported file format is Barracuda.
130809 15:31:15  InnoDB: Waiting for the background threads to start
130809 15:31:16 InnoDB: 5.5.32 started; log sequence number 357746282514
130809 15:31:17 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130809 15:31:17 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130809 15:31:17 [Note] Server socket created on IP: '0.0.0.0'.
130809 15:31:17 [Note] Event Scheduler: Loaded 0 events
130809 15:31:17 [Note] mysqld: ready for connections.
Version: '5.5.32-0ubuntu0.12.04.2-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)

и он просто отлично работает. Итак, копаясь в файлах журнала, мы заметили следующее:

130809 10:15:37  InnoDB: Starting shutdown...
130809 10:15:39  InnoDB: Waiting for 200 pages to be flushed
130809 10:16:02  InnoDB: Shutdown completed; log sequence number 357736350943
130809 10:16:02 [Note] /usr/sbin/mysqld: Shutdown complete

/proc/self/fd/9: 1: /proc/self/fd/9: mysqld_get_param: not found
/proc/self/fd/9: 1: /proc/self/fd/9: mysqld_get_param: not found
/proc/self/fd/9: 1: /proc/self/fd/9: mysqld_get_param: not found
/proc/self/fd/9: 1: /proc/self/fd/9: mysqld_get_param: not found

В 10:15 было начато обновление. Каждый раз, когда мы пытаемся запустить mysql-server используя либо сценарий init.d, либо service mysql start команда просто добавит еще одну строку, как последние 4 строки.

Итак, пока мы можем запустить сервер в screen и запускать его вручную каждый раз при перезагрузке сервера, это очень раздражает. Что мы можем сделать, чтобы это исправить?

У меня была такая же проблема с момента обновления в прошлую пятницу. Есть старая ошибка Ubuntu, которая существует довольно долго и, похоже, связана:

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/973951

В этом потоке предлагаются различные исправления / обходные пути (в том числе несколько очистки + переустановка), но недавно опубликованный обходной путь помог мне и может сработать и для вас:

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/973951/comments/37

Удачи.