Автор Тема: Перестал запускаться сервер СУБД MySQL  (Прочитано 50288 раз)

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
Несколько дней назад в ОС ALT Workstation 8.2 перестал запускаться сервер СУБД MySQL 5.7.28. Его прощальными строками в файле /var/lib/mysql/log/mysqld.log были:
2020-06-14T09:59:06.286340Z 0 [Note] InnoDB: Starting shutdown...
2020-06-14T09:59:06.386938Z 0 [Note] InnoDB: Dumping buffer pool(s) to /db/ib_buffer_pool
2020-06-14T09:59:06.451501Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 200614 12:59:06
2020-06-14T09:59:08.091721Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2697526
2020-06-14T09:59:08.094877Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2020-06-14T09:59:08.094935Z 0 [Note] Shutting down plugin 'MEMORY'
2020-06-14T09:59:08.094957Z 0 [Note] Shutting down plugin 'CSV'
2020-06-14T09:59:08.094975Z 0 [Note] Shutting down plugin 'sha256_password'
2020-06-14T09:59:08.094988Z 0 [Note] Shutting down plugin 'mysql_native_password'
2020-06-14T09:59:08.095283Z 0 [Note] Shutting down plugin 'binlog'
2020-06-14T09:59:08.096553Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
Удаление файлов ib_logfile0 и ib_logfile1 ни к чему не привело. Можно ли как-либо восстановить работоспособность сервера СУБД MySQL? Буду признателен за любой совет по данной проблеме.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
А сейчас то какую ошибку при запуске выдает?

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
Спасибо за ответ. При попытке запуска:
# service mysqld start
# service mysqld status
# failed
в файл mysqld.log ничего не заносится.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
А у вас система на sysv или systemd?

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
По умолчанию в ОС устанавливается подсистема systemd.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Удаление файлов ib_logfile0 и ib_logfile1 ни к чему не привело.
А почему это должно было помочь?
service mysqld status
Это, в общем-то, не интересно. Что он не работает понятно из первого сообщения.
в файл mysqld.log ничего не заносится.
По умолчанию строка с этим логом в конфиге закомментирована. Туда пишутся запросы, и он может получаться очень большой. Но там может и не быть интересного. Вообще с sysv MySQL выводит некоторые сообщения в консоль. Может с systemd их journal перехватывает и там что-то есть.
« Последнее редактирование: 25.06.2020 02:05:34 от asy »

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
Спасибо за ответ. Сейчас начал проявляться нестабильный запуск сервера СУБД, хотя причины такого странного его поведения по-прежнему неясны. В файле mysqld.log, указанном в /etc/my.cnf.server/chroot.cnf|no-chroot.cnf:
# options for chroot
[client]
#loose-chroot    = /var/lib/mysql

[mysqld]
chroot          = /var/lib/mysql
datadir = /db
socket = /mysql.sock
pid-file = /mysqld.pid
log-error = /log/mysqld.log
#log = /log/queries
tmpdir = /tmp
при удачном запуске начала появляться информация, упоминания же об ошибках там, как и до этого, отсутствуют:
Спойлер
2020-06-24T22:22:10.392932Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-06-24T22:22:10.429109Z 0 [Warning] Can't create test file /db/k-93-77-81-76.lower-test
2020-06-24T22:22:10.461247Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.28-alt1) starting as process 1311 ...
2020-06-24T22:22:11.431792Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
2020-06-24T22:22:11.431850Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
2020-06-24T22:22:11.560470Z 0 [Warning] CA certificate /db/ca.pem is self signed.
2020-06-24T22:22:11.560626Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
2020-06-24T22:22:11.643725Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2020-06-24T22:22:11.643847Z 0 [Note] IPv6 is available.
2020-06-24T22:22:11.643866Z 0 [Note]   - '::' resolves to '::';
2020-06-24T22:22:11.644055Z 0 [Note] Server socket created on IP: '::'.
2020-06-24T22:22:12.619170Z 0 [Note] InnoDB: PUNCH HOLE support available
2020-06-24T22:22:12.619254Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-06-24T22:22:12.619277Z 0 [Note] InnoDB: Uses event mutexes
2020-06-24T22:22:12.619296Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2020-06-24T22:22:12.619315Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.8
2020-06-24T22:22:12.619334Z 0 [Note] InnoDB: Using Linux native AIO
2020-06-24T22:22:12.711908Z 0 [Note] InnoDB: Number of pools: 1
2020-06-24T22:22:12.852701Z 0 [Note] InnoDB: Not using CPU crc32 instructions
2020-06-24T22:22:12.905039Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2020-06-24T22:22:13.016417Z 0 [Note] InnoDB: Completed initialization of buffer pool
2020-06-24T22:22:13.022921Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2020-06-24T22:22:13.363763Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2020-06-24T22:22:14.457619Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2020-06-24T22:22:14.457800Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2020-06-24T22:22:15.100954Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2020-06-24T22:22:15.103296Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2020-06-24T22:22:15.103351Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2020-06-24T22:22:15.103960Z 0 [Note] InnoDB: Waiting for purge to start
2020-06-24T22:22:15.154321Z 0 [Note] InnoDB: 5.7.28 started; log sequence number 2697620
2020-06-24T22:22:15.155352Z 0 [Note] InnoDB: Loading buffer pool(s) from /db/ib_buffer_pool
2020-06-24T22:22:15.176493Z 0 [Note] Plugin 'FEDERATED' is disabled.
2020-06-24T22:22:15.513374Z 0 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name.  Please run mysql_upgrade
2020-06-24T22:22:15.513500Z 0 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name.  Please run mysql_upgrade
2020-06-24T22:22:15.938923Z 0 [Note] InnoDB: Buffer pool(s) load completed at 200625  1:22:15
2020-06-24T22:22:16.025527Z 0 [Note] Failed to start slave threads for channel ''
2020-06-24T22:22:16.569121Z 0 [Note] Event Scheduler: Loaded 0 events
2020-06-24T22:22:16.569847Z 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.7.28-alt1'  socket: '/mysql.sock'  port: 3306  (ALT p8)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
при удачном запуске начала появляться информация, упоминания же об ошибках там, как и до этого, отсутствуют:
Так если запускается, значит нет ошибок. Попробуйте без системы инициализации запустить. Посмотрите вывод "ps awwx | grep sql" и точно с таким же набором параметров запустить попробуйте, когда не стартует. Но вообще странно, что через раз запускается. Это не виртуалка с недостатком памяти?

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 159
А не пробовали запускать mysql_upgrade, как просит в логе ? Возможно было обновление MySQL по версии, и требуется внести изменения в системные таблицы.

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
Спасибо за ответы. Как ни удивительно, сервер СУБД MySQL опять начал стабильно запускаться, во всяком случае, пока.
Вывод команды ps -awwx | grep sql следующий:
2450 ?        Ssl    0:00 /usr/sbin/mysqld -C utf8
2484 tty2     S+     0:00 grep --color=auto sql
Результат выполнения команды mysql_upgrade:
Upgrade process completed successfully.
Could not create the upgrade info file '/db/mysql_upgrade_info' in the MySQL Servers datadir, errno 2
Таким образом, придётся ждать очередного сбоя в работе сервера СУБД, хотя такое его поведение настораживает.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
Таким образом, придётся ждать очередного сбоя в работе сервера СУБД, хотя такое его поведение настораживает.
сделайте резервную копию всех баз, удалите файлы баз с диска и перезалейте заново с резервной копии.
Заодно можно перейти на mariadb чтобы потом проще на p9 переходить было.

Оффлайн vadval15

  • Давно тут
  • **
  • Сообщений: 186
Спасибо за совет. Резервные копии баз данных уже сделаны, так что при повторном отказе СУБД MySQL, наверное, придётся им воспользоваться. Переход же на СУБД Mariadb является затруднительным, поскольку многие среды разработки пока её не поддерживают и, несмотря на их схожесть, всё же выявляют разницу и перестают функционировать.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
Спасибо за совет. Резервные копии баз данных уже сделаны, так что при повторном отказе СУБД MySQL, наверное, придётся им воспользоваться. Переход же на СУБД Mariadb является затруднительным, поскольку многие среды разработки пока её не поддерживают и, несмотря на их схожесть, всё же выявляют разницу и перестают функционировать.
ну тогда вас ждет большой сюрприз с MySQL-8.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
ну тогда вас ждет большой сюрприз с MySQL-8.
Какой там может быть сюрприз? Формат системной базы раве что. Пароли поменять можно уже сейчас (точнее они уже в 5.7 поменялись), остальное, скорее всего, опять решит mysql_upgrade.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
ну тогда вас ждет большой сюрприз с MySQL-8.
Какой там может быть сюрприз? Формат системной базы раве что. Пароли поменять можно уже сейчас (точнее они уже в 5.7 поменялись), остальное, скорее всего, опять решит mysql_upgrade.
там сильно поменялся API/ABI для приложений.