Восстановление баз данных InnoDB после сбоев в MySQL

Возникла у меня проблема с выходом из строя баз данных MySQL. Причем, проблема проявляла себя в виде не запуска сервиса MySQL. При этом в логах довольно было мало информации. Однако, запустив mysql_safe все таки логи выдали ошибки. Из которых стало понятно, что база несколько испортилась (до этого пришлось физически выключать сервер, т.к. сервис MySQL завис от количества посещений и сервер длительное время не хотел перезагружаться). Провозившись несколько часов вывелся рецепт лечения: Лог ошибок может выдавать в случае сбоя нечто подобное:

Отправляет в документацию по восстановлению :))) 1. Переводим сервис в защищенный режим MySQL. Останавливаем сервис, если он пытается запуститься.

Далее, добавляем строчки в конфиг MySQL my.cnf:

Причем, параметр innodb_force_recovery=3 увеличиваем, начиная с 1 и так до тех пор, пока не запустится сервис (максимум это значение может быть 8). Вот, что означает этот параметр: Mode 1 — не «отваливается» MySQL, когда он видит коррумпированные страницы. Mode 2 — не запускает фоновые операции. Mode 3 — Не пытается откатить транзакции. Mode 4 —  не рассчитывает статистику или не применяет сохраненные/буферизированные изменения. Mode 5 —  Не смотрите на log-и отката при запуске. Mode 6 — Не прокрутки вперед от повтора логов (ib_logfiles) во время пуска. 2. Делаем бекап всех данных базы данных (после запуска сервера).

3. Переименовываем всю папку с данными MySQL (потом, когда все заработает – ее можно будет удалить) 4. Разворачиваем новый кластер MySQL. Как это делается, описано в статье: Инициализация базы данных MySQL, сброс пароля MySQL на Linux Ubuntu 18.04 5. Запускаем MySQL и восстанавливаем данные:

6. Перезагружаем […]

Read more

Решение проблемы с правами доступа MySQL из-за сервиса AppArmor

При перезагрузке MySQL столкнулся с тем, что сервис не запускался. При более подробном анализе логов, увидел, что стало ругаться на права доступа в сервисе AppArmor. Выводились сообщения, подобные таким:

Исправляется это дело внесением правил в файл (посредине файла) /etc/apparmor.d/usr.sbin.mysqld Подобные правила:

Конечно, правила формируются в зависимости от сообщений. В каталогах можно применять маски, например: * – любое название. Чтоб изменения вступили в силу нужно перезагрузить сервисы:

   

Read more

Инициализация базы данных MySQL, сброс пароля MySQL на Linux Ubuntu 18.04

В новых версиях MySQL есть свои нюансы по сбросу пароля MySQL. У меня даже при развертывании первичной базы пустой базы не удавалось подключаться. Некоторое время пришлось повозиться, побеждая данную проблему. Дальше, я приведу рецепт, как инициализировать базу данных и сбросить пароль рута в MySQL. 1) Останавливаем текущую службу MySQL:

  2) Создаем каталог /var/run/mysqld который будет использоваться процессом MySQL для хранения и доступа к файлу сокета, а также даем необходимые права:

  3) Запускаем MySQL со следующими параметрами:

  4) Убеждаемся, что процесс запущен:

  5) На этом этапе мы можем получить доступ к MySQL без пароля. Входим командой:

  6) Затем сбрасываем пароль root следующей последовательностью запросов:

  Мы установили пароль “123” для пользователя “root”. 7) Завершаем текущий mysqld процесс:

  [1]+ Завершён sudo /usr/sbin/mysqld –skip-grant-tables –skip-networking 8) Запускаем службу MySQL:

  9) Теперь мы можем войти, используя только что установленный пароль для рута:

  mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement. mysql>   10) Так же, база попросила установить пароль с помощью Alter User:

    Источник: http://ikode.ru/articles/kak-sbrosit-parol-root-mysql-na-ubuntu-1804      

Read more

Отношения в семье

Отношения на ранних этапах всегда полны эйфории, поэтому развиваются они, как правило, легко и слаженно. Однако с годами страсть и увлеченность гаснет, что приводит к отдалению партнеров друг от друга. От так называемого кризисного периода не застрахован никто, но очень важно понимать, что выход есть и прежний «огонь» еще можно вернуть. Существуют простые способы снова сблизиться с любимым человеком и наладить отношения. Сделав несколько несложных шагов навстречу друг к другу, можно заново узнать свою половинку и ощутить к ней былую трогательность. Шаг первый — общение. Мы не всегда задумываемся о том, что самое важное в отношениях — это разговоры. Они крайне необходимы двум любящим людям, на каком бы этапе отношений они не находились. Начать можно с банального вечернего обмена настроением и впечатлениями, пережитыми за день. Какими бы уставшими после работы оба не были — найти силы поинтересоваться маленькой будничной жизнью половинки крайне необходимо. Тем более, что разговоры друг о друге можно перенести в более комфортную обстановку: например, устроить общение перед сном в постели, отложив и выключив все гаджеты. Любой способ коммуникации, позволяющий заново узнавать друг друга, даст начало возрождению эмоциональной связи между людьми, что отдалились. А появление эмоционального контакта всегда влечет за собой физическое притяжение. Шаг второй — тактильный контакт. Одно из проявлений любви — это желание касаться. Поэтому так важно не забывать о прикосновениях в любых их проявлениях. Стоит завести полезные привычки в этом ключе: чаще держаться за руки, встречать и провожать друг друга поцелуями, обниматься перед сном. Ведь даже учеными доказано, что мужчины, целующие своих жен перед работой […]

Read more