Вопрос или проблема
У меня локально настроен XAMPP для работы с WordPress. Я, вероятно, что-то не так сделал, когда исправлял некоторые проблемы, потому в конце концов я застрял с следующим логом от базы данных MySQL.
2015-11-10 15:26:56 10fc InnoDB: Предупреждение: Использование innodb_additional_mem_pool_size является УСТАРЕВШИМ. Эта опция может быть удалена в будущих версиях, вместе с опцией innodb_use_sys_malloc и с внутренним распределителем памяти InnoDB.
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Использование мьютексов для подсчета ссылок на страницы пула буферов
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Куча памяти InnoDB отключена
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Мьютексы и rw_locks используют функции Windows interlocked
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Памятный барьер не используется
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Сжатые таблицы используют zlib 1.2.3
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Не используются инструкции CPU crc32
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Инициализация пула буферов, размер = 16.0M
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Завершена инициализация пула буферов
2015-11-10 15:26:56 4348 [Примечание] InnoDB: Максимально поддерживаемый формат файла - Barracuda.
2015-11-10 15:26:57 4348 [Примечание] InnoDB: 128 сегментов отката активны.
2015-11-10 15:26:57 4348 [Примечание] InnoDB: Ожидание начала очистки
2015-11-10 15:26:57 4348 [Примечание] InnoDB: Перкона XtraDB (http://www.percona.com) 5.6.26-74.0 запущена; номер последовательности лога 1835027
2015-11-10 15:26:57 6140 [Примечание] InnoDB: Сброс пула буферов еще не начат
2015-11-10 15:26:57 4348 [Примечание] Плагин 'FEEDBACK' отключен.
2015-11-10 15:26:57 4348 [Примечание] Указатель сервера создан на IP: '::'.
2015-11-10 15:26:57 4348 [Примечание] Планировщик событий: Загружено 0 событий
2015-11-10 15:26:57 4348 [Примечание] C:\xampp\mysql\bin\mysqld.exe: готов к подключениям.
Версия: '10.1.8-MariaDB' сокет: '' порт: 3306 бинарное распределение mariadb.org
2015-11-10 15:27:11 5152 [Примечание] C:\xampp\mysql\bin\mysqld.exe: Нормальное завершение работы
--------
2018-07-19 21:28:34 568 InnoDB: Предупреждение: Использование innodb_additional_mem_pool_size является УСТАРЕВШИМ. Эта опция может быть удалена в будущих версиях, вместе с опцией innodb_use_sys_malloc и с внутренним распределителем памяти InnoDB.
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Использование мьютексов для подсчета ссылок на страницы пула буферов
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Куча памяти InnoDB отключена
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Мьютексы и rw_locks используют функции Windows interlocked
2018-07-19 21:28:34 1384 [Примечание] InnoDB: _mm_lfence() и _mm_sfence() используются для памяти барьер
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Сжатые таблицы используют zlib 1.2.3
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Используются стандартные инструкции crc32
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Инициализация пула буферов, размер = 2.0G
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Завершена инициализация пула буферов
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Максимально поддерживаемый формат файла - Barracuda.
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Номер последовательности лога 0 в файле ibdata не соответствует номеру последовательности лога 49463 в ib_logfiles!
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Восстановление возможных полустрок данных из буфера двойной записи...
2018-07-19 21:28:34 1384 [Примечание] InnoDB: Создание пространственной таблицы и системных таблиц данных.
2018-07-19 21:28:35 1384 [Примечание] InnoDB: Пространственная таблица и системные таблицы данных созданы.
2018-07-19 21:28:35 1384 [Предупреждение] InnoDB: Изменение размера redo лога с 2*320 на 2*16384 страниц, LSN=53524
2018-07-19 21:28:35 1384 [Предупреждение] InnoDB: Начало удаления и переписывания файлов лога.
2018-07-19 21:28:35 1384 [Примечание] InnoDB: Установка размера файла лога D:\xampp\mysql\data\ib_logfile101 на 256 МБ
2018-07-19 21:28:35 1384 [Примечание] InnoDB: Установка размера файла лога D:\xampp\mysql\data\ib_logfile1 на 256 МБ
2018-07-19 21:28:35 1384 [Примечание] InnoDB: Переименование файла лога D:\xampp\mysql\data\ib_logfile101 в D:\xampp\mysql\data\ib_logfile0
2018-07-19 21:28:35 1384 [Предупреждение] InnoDB: Новые файлы лога созданы, LSN=53772
2018-07-19 21:28:35 1384 [Примечание] InnoDB: 1 сегмент отката активен.
2018-07-19 21:28:35 1384 [Ошибка] InnoDB: Инициализация плагина прервана в D:\win32-packages\build\src\storage\xtradb\srv\srv0start.cc [2969] с ошибкой Общая ошибка.
2018-07-19 21:28:35 1384 [Ошибка] Функция инициализации плагина 'InnoDB' вернула ошибку.
2018-07-19 21:28:35 1384 [Ошибка] Регистрация плагина 'InnoDB' как ХРАНИЛИЩА не удалась.
2018-07-19 21:28:35 1384 [Примечание] Плагин 'FEEDBACK' отключен.
2018-07-19 21:28:35 1384 [Ошибка] Неизвестный/нес-supported хранилище: InnoDB
2018-07-19 21:28:35 1384 [Ошибка] Прерывание
Этот парень, похоже, повторяется несколько раз – я знаю, это специфично. Я почти знаю это как поэзию, но все же не могу найти решение. Я попробовал несколько методов, найденных в Интернете, некоторые из них:
*удаление ib_logfile0 и ib_logfile1
*увеличение размера пула буферов InnoDB
*удаление ‘sys_malloc’ из конфигурации базы данных
Ниже я вставлю файл my.ini моего сервера sql.
# Пример конфигурационного файла MySQL для маленьких систем.
#
# Это для системы с небольшим объемом памяти (<= 64M), где MySQL используется
# время от времени, и важно, чтобы демон mysqld
# не использовал много ресурсов.
#
# Вы можете скопировать этот файл в
# D:/xampp/mysql/bin/my.cnf для установки глобальных опций,
# mysql-data-dir/my.cnf для установки специфических для сервера опций (в этом
# установке этот каталог находится D:/xampp/mysql/data) или
# ~/.my.cnf для установки специфических для пользователя опций.
#
# В этом файле вы можете использовать все длинные опции, которые поддерживает программа.
# Если вы хотите знать, какие опции поддерживает программа, запустите программу
# с помощью опции "--help".
# Следующие опции будут переданы всем клиентам MySQL
[client]
# пароль = ваш_пароль
port = 3306
socket = "D:/xampp/mysql/mysql.sock"
# Здесь следуют записи для некоторых специфических программ
# Сервер MySQL
[mysqld]
innodb_force_recovery = 4
port= 3306
socket = "D:/xampp/mysql/mysql.sock"
basedir = "D:/xampp/mysql"
tmpdir = "D:/xampp/tmp"
datadir = "D:/xampp/mysql/data"
pid_file = "mysql.pid"
# включить именованный канал
key_buffer = 20M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 20M
log_error = "mysql_error.log"
innodb_use_sys_malloc = 1
# Измените здесь для привязки прослушивания
# bind-address="127.0.0.1"
# bind-address = ::1 # для ipv6
# Где живут все плагины
plugin_dir = "D:/xampp/mysql/lib/plugin/"
# Не слушать на TCP/IP порту вообще. Это может быть улучшением безопасности,
# если все процессы, которым нужно подключиться к mysqld, работают на том же хосте.
# Все взаимодействия с mysqld должны происходить через Unix-сокеты или именованные каналы.
# Обратите внимание, что использование этой опции без включения именованных каналов в Windows
# (через опцию "enable-named-pipe") сделает mysqld бесполезным!
#
# закомментировано безопасностью lampp
#skip-networking
#skip-federated
# Репликация Мастер-сервер (по умолчанию)
# бинарное логирование требуется для репликации
# log-bin отключен по умолчанию с момента XAMPP 1.4.11
#log-bin=mysql-bin
# требуется уникальный идентификатор между 1 и 2^32 - 1
# по умолчанию равен 1, если master-host не установлен
# но не будет функционировать как мастер, если опущен
server-id = 1
# Репликация Рабы (закомментируйте раздел мастер, чтобы использовать это)
#
# Чтобы настроить этот хост как репликационного раба, вы можете выбрать один из
# двух методов :
#
# 1) Используйте команду CHANGE MASTER TO (полностью описана в нашем справочнике) -
# синтаксис:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# где вы заменяете <host>, <user>, <password> на строки в кавычках и
# <port> на номер порта мастера (по умолчанию 3306).
#
# Пример:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# ИЛИ
#
# 2) Установите переменные ниже. Однако, если вы выберете этот метод, то
# начните репликацию в первый раз (даже безуспешно, например,
# если вы неправильно ввели пароль в master-password, и раб не смог
# подключиться), раб создаст файл master.info, и любое дальнейшее
# изменение в этом файле значений переменных ниже будет проигнорировано и
# переопределено содержимым файла master.info, если вы не завершите
# работу сервера раба, не удалив master.info и не перезапустив сервер раба.
# По этой причине вы можете оставить строки ниже нетронутыми
# (закомментированными) и вместо этого использовать CHANGE MASTER TO (см. выше)
#
# требуется уникальный идентификатор между 2 и 2^32 - 1
# (и отличающийся от мастера)
# по умолчанию равен 2, если master-host установлен
# но не будет функционировать как раб, если опущен
#server-id = 2
#
# Мастер репликации для этого раба - требуется
#master-host = <hostname>
#
# Имя пользователя, которое раб будет использовать для аутентификации при подключении
# к мастеру - требуется
#master-user = <username>
#
# Пароль, с которым раб будет аутентифицироваться при подключении к
# мастеру - требуется
#master-password = <password>
#
# Порт, на котором слушает мастер.
# необязательный - по умолчанию 3306
#master-port = <port>
#
# бинарное логирование - не обязательно для рабов, но рекомендуется
#log-bin=mysql-bin
# Укажите следующие пути на разные выделенные диски
#tmpdir = "D:/xampp/tmp"
#log-update = /path-to-dedicated-directory/hostname
# Раскомментируйте следующее, если вы используете таблицы BDB
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# Закомментируйте следующее, если вы используете таблицы InnoDB
#skip-innodb
innodb_data_home_dir = "D:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "D:/xampp/mysql/data"
#innodb_log_arch_dir = "D:/xampp/mysql/data"
## Вы можете установить .._buffer_pool_size до 50 - 80 %
## оперативной памяти, но остерегайтесь установить использование памяти слишком высоко
innodb_buffer_pool_size = 200M
innodb_additional_mem_pool_size = 200M
## Установите .._log_file_size на 25 % от размера пула буферов
innodb_log_file_size = 5M
innodb_log_buffer_size = 200M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
## настройки UTF 8
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="D:/xampp/mysql/share/charsets"
[mysqldump]
quick
max_allowed_packet = 20M
[mysql]
no-auto-rehash
# Удалите следующий символ комментария, если вы не знакомы с SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Я довольно новичок в MySQL и пытаюсь все это сделать, даже не изменив ошибку… отстой. И, вероятно, я буду еще больше отстоять, пока не начну разбираться (да, я только что это сказал, чтобы вы, ребята, не могли воспользоваться). Удачи!
Так я подошел к решению проблемы.
Я исправил проблему. Из папки xampp/mysql/backup/ я скопировал все файлы в xampp/mysql/data/. Это решило проблему.
Ответ или решение
Ошибка: MySQL неожиданно завершил работу. XAMPP на локальном конфигурировании для WordPress
Если вы столкнулись с проблемой неожиданного завершения работы MySQL в XAMPP, использующем WordPress, это может быть связано с различными факторами, такими как неправильные конфигурации, повреждение файлов данных или блокировка ресурса. На основе предоставленных вами логов ошибок и ваших действий, мы подведем итоги возможных причин и решений данной проблемы.
1. Анализ логов ошибок
В ваших логах мы можем заметить несколько предупреждений и ошибок:
-
Deprecated Warnings: Уведомление о том, что использование
innodb_additional_mem_pool_size
устарело. Хотя это не является основной причиной сбоя, стоит учитывать, что устаревшие параметры могут вызвать нежелательные последствия в будущем. -
Ошибка инициализации InnoDB: Логи показывают, что инициализация плагина InnoDB завершилась ошибкой. Эта ошибка может указывать на несоответствие между логической последовательностью и данными, сохраненными в файлах.
2. Возможные причины ошибки
-
Проблемы с файлами данных: Файлы
ib_logfile0
иib_logfile1
, которые отвечают за логи транзакций InnoDB, могут быть повреждены. -
Настройки памяти: Неверные значения параметров, таких как
innodb_buffer_pool_size
иinnodb_log_file_size
, могут приводить к сбоям в работе сервера. -
Конфликтующие процессы: Другие запущенные службы, использующие порт 3306, могут вызвать конфликт.
3. Рекомендуемые действия
Вот несколько шагов, которые помогут вам устранить данную проблему:
-
Резервное копирование данных: Перед изменениями всегда создавайте резервные копии всех важных файлов и баз данных.
-
Удаление логов: Удалите файлы
ib_logfile0
иib_logfile1
, затем перезапустите MySQL. Это может помочь в ситуации с поврежденными файлами. -
Настройки my.ini: Проанализируйте файл конфигурации
my.ini
. Убедитесь, что у вас правильные настройки параметров InnoDB.- Например, увеличьте
innodb_buffer_pool_size
согласно объему памяти вашей системы, поскольку это поможет улучшить производительность. - Попробуйте отключить
innodb_use_sys_malloc
, как вы это сделали ранее.
- Например, увеличьте
-
Восстановление из резервной копии: Если у вас есть резервные копии из папки
xampp/mysql/backup
, скопируйте их обратно в папкуxampp/mysql/data/
. Это может восстановить неполные или поврежденные записи.- Как вы уже упомянули, это помогло решить проблему. В будущем, регулярные резервные копии повысят шансы на быстрое восстановление от сбоев.
-
Проверка других служб: Убедитесь, что другие приложения не занимают порт, необходимый для MySQL (порт 3306 по умолчанию).
4. Заключение
Работа с MySQL требует внимания к деталям, особенно при локальном конфигурировании под WordPress. Если вы столкнетесь с повторяющимися проблемами, возможно, стоит рассмотреть возможность переустановки XAMPP или MySQL, хотя это крайняя мера. Важно быть осторожным с конфигурациями и часто делать резервные копии.
Данная пошаговая инструкция должна помочь вам в решении проблемы неожиданного завершения работы MySQL в XAMPP. Систематический подход к диагностике и исправлению ошибок, а также регулярное создание резервных копий, помогут значительно упростить процесс поддержания базы данных в работоспособном состоянии.