Установка и использование innotop

innotop — утилита для мониторинга состояния MySQL сервера.

Приведу пример установки innotop в Ubuntu. Так как innotop присутствует в mysql-client, то установим его и необходимые компоненты:

Читать далее «Установка и использование innotop»

Решение apparmor=»DENIED» operation=»open» profile=»/usr/sbin/mysqld»

Однажды оптимизируя один из серверов, выполнил команду:

dmesg

И увидел следующие сообщения:
Читать далее «Решение apparmor=»DENIED» operation=»open» profile=»/usr/sbin/mysqld»»

Установка и использование mysqltuner.pl

MySQLTuner — это Perl скрипт, который даст рекомендации по повышению производительности и стабильности MySQL сервера.

Читать далее «Установка и использование mysqltuner.pl»

Изменение значения по умолчанию в MySQL столбцах

Приведу пример указания или изменения значения по умолчанию в MySQL столбце.
Посмотрим список таблиц в базе данных:

SHOW TABLES;

Посмотрим структуру интересующей нас таблицы:

DESCRIBE internet_main;

Допустим колонка activate имеет тип date и значение по умолчанию 0000-00-00, а мы хотим сделать 3000-01-01, то выполним sql запрос:

ALTER TABLE internet_main ALTER activate SET DEFAULT '3000-01-01';

Можно также удалить значение по умолчанию:

ALTER TABLE internet_main ALTER activate DROP DEFAULT;

Или вернуть как было:

ALTER TABLE internet_main ALTER activate SET DEFAULT '0000-00-00';

В строгом режиме MySQL может не дать установить значение 0000-00-00, поэтому можно временно отключить строгий режим:

SET sql_mode = '';

Как запустить MySQL сервер на конкретных IP

Подходящим решением которое я нашел для запуска MySQL сервера на конкретных IP адресах, это запустить его на всех и потом отфильтровать подключаемых клиентов через iptables.

Для теста я использовал Ubuntu Server 16.04.5 LTS, который имел более 200 внешних белых IP и был высоконагруженным.

Читать далее «Как запустить MySQL сервер на конкретных IP»

Скрипт добавления IP адресов из файла в ipset

Понадобилось однажды написать скрипт чтобы добавить в ipset все IP для которых били подняты сессии на сервере доступа, использовался биллинг Abills, поэтому я решил взять IP адреса из MySQL таблицы биллинга.

Первым делом создадим тестовый ipset:

ipset create test iphash

Читать далее «Скрипт добавления IP адресов из файла в ipset»

Решение MySQL ERROR 1055 (42000)

Недавно выполнял необходимые SQL запросы и заметил следующую ошибку:

ERROR 1055 (42000): Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_name.table_name.column_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Читать далее «Решение MySQL ERROR 1055 (42000)»

Как увидеть процесс импорта SQL файла?

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

Читать далее «Как увидеть процесс импорта SQL файла?»

Как решить «ERROR 1062 (23000) at line X: Duplicate entry ?????? for key X»

Импортировал недавно дамп в MySQL и обнаружил следующую ошибку:

ERROR 1062 (23000) at line 14096: Duplicate entry '????????' for key 'name'

Читать далее «Как решить «ERROR 1062 (23000) at line X: Duplicate entry ?????? for key X»»