Bash Days | Linux | DevOps
22.9K subscribers
115 photos
21 videos
557 links
Авторский канал от действующего девопса

Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

Курс: @tormozilla_bot

РКН: https://two.su/bashdays
Download Telegram
😀😃😄😁😆

🔧 Утилиты: #utils
💳 Таблицы: #sheets
Скрипты: #bash
🎙 Мониторинг: #monitoring
🤔 Отладка: #debug
🎃 Линукс: #linux
✉️ Nginx: #nginx
📦 GIT: #git
📊 Mysql: #mysql
📱 Сервисы: #services
🔄 Девопс: #devops
🛡 Безопасность: #security
👻 Игры: #games
🌐 Сети: #networks
💬 Будни: #рабочиебудни
Please open Telegram to view this post
VIEW IN TELEGRAM
Йоу-Йоу и снова ваш покорный сеньор у микрофона. Короче писал, писал я вам сегодня интересный пост, про офигительные циркули, но прибежало начальство и нагрузило какой-то шляпой, сижу вот плачу. В общем доведу до ума портянку и завтра уже вечерком закину.

Сегодня мини пост. Вчера мы с тобой обсуждали коды выходов программ/скриптов. Давай теперь затронем тему mysql, а конкретнее как расшифровать коды ошибок, которые пишутся в лог без пояснений.

Смотрим mysql ошибки:

tail -n 20 /var/log/mysql/error.log

Команда tail записывает в стандартный поток вывода содержимое файла, заданного в параметре файл, начиная с указанной позиции.

Ключ -n = количество строк с конца, которые выведутся на экран, по умолчанию 10.

Так, получили 20 строчек с ошибками, смотрим что же там, опа ошибка:

11:47:52 [ERROR] mysqld: Can't open file: ‘/var/lib/mysql/tokens.frm' (errno: 24)

О чем она мне говорит? Ну ясно понятно - не могу открыть файл tokens.frm. Идем смотреть, хм, файл лежит на месте и даже не нулевого размера. Права правильные mysql:mysql. Так… место на диске тоже предостаточно. И что ты от меня хочешь псина?

Важный совет — всегда читай ошибку с начала и до конца! В 99% ты сможешь понять о чем идет речь и загуглить. Но как показывает практика: много кто читает 2-3 слова и бежит к тимлиду — Наташа, у нас все сломалось! А Наташа смотрит тот же самый лог и прекрасно понимает в чем дело. Не беси своего тимлида! Читай внимательно, вникай.

Вернемся к нашей неочевидной ошибке с открытием файла tokens.frm. Видишь в конце строки, в скобочках errno: 24? ВОТ ЭТО ОНО! А что значит 24? Ща…

Из коробки с mysql идет прекрасная утилита, которая называется perror, вот с помощью нее ты и можешь расшифровать эту ошибку. Давай попробуем.

perror 24
OS error code 24: Too many open files

Ёпта! Too many open files, а мы то всего-навсего уперлись в open_files_limit который прописан в конфиге my.cnf. Дело закрыто! Увеличиваем этот параметр и гордимся своими профессиональными навыками дебагинга.

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

Еще есть прекрасный файл /etc/security/limits.conf в котором тоже может быть что-то не так накручено, ну и параметр fs.file-max в /etc/sysctl.conf. Каждая отдельная ситуация индивидуальна. Но в большинстве случаев решается повышением значения ulimit.

Для каждого кода ошибки в mysql будет свой способ решения, чем больше у тебя информации на руках, тем больше запросов ты сможешь загуглить. Так что если что-то упало, не рви на жопе себе волосы, всё решаемо и ты обязательно справишься! Главное знать какой инструмент и когда применить.

Ладно, надеюсь было полезно, пойду дальше плакать. Завтра залетит интеграция от партнера, ну а вечером уже закину пост про офигительные циркули. Давай!

tags: #mysql #linux #debug

💩 @bashdays
Please open Telegram to view this post
VIEW IN TELEGRAM