Category archives: Базы данных

В данной рубрике статей размещаются посты с информацией о различных базах данных.

Не запускается СУБД MySQL mysql.service: Main process exited, code=exited, status=1/FAILURE

Произошла у меня комичная ситуация. При помощи команды «reboot» перезапустил сервер с ОС Linux Ubuntu и после перезапуска СУБД MySQL перестала запускаться. После выполнения команды «service mysql restart» выводится сообщение: «Job for mysql.service failed because the control process exited with error code. See «systemctl status mysql.service» and «journalctl -xe» for details.» Что делать и как быть? Read more …

Tags: , , , , , , , , ,

Что устанавливать для веб-сервера на чистом выделенном сервере

Итак, арендовали виртуальный или физический выделенный сервер (VPS/VDS) с одной только ОС Linux и теперь пора его настроить, чтобы сделать из него веб-сервер для сайтов интернета. Настройка веб-сервера на чистом выделенном сервере дело не совсем хлопотное, но всё же придётся потратить немного времени.
Read more …

Tags: , , , , , , , , , , , , , , , , , , , , , , ,

Создание пользователя и наделение его правами в СУБД MySQL

Казалось бы тема проще некуда, но, судя по форумам и специализированным сайтам ответов, у многих людей она вызывает вопросы, надо прояснить. Как же создать пользователя в СУБД MySQL и наделить его правами администратора? Разумеется, речь идёт о SQL, т.к. как создавать пользователей через какой-нибудь менеджер БД типа «PhpMyAdmin» или «MySQL Workbench» все конечно знают. Read more …

Tags: , , , , , , , ,

Как добавить персонализированную дерикторию в Apache, например, для PhpMyAdmin?

Как добавить персонализированную дерикторию в Apache, например, для PhpMyAdmin?
How to add custom directory e.g. for phpmyadmin?

Все знают как в Apache настраиваются виртуальные хосты для сайтов, но как быть не с доменом а директорией? Как в Apache добавить определённую директорию в качестве виртуального хоста, что бы, например по URL запросу «http://255.255.255.255/phpmyadmin/» отдавалось содержимое директории «/media/my/web/PhpMyAdmin» ? Т.е. если нет желания вешать, например, тот же PhpMyAdmin на определённый виртуальный хост, а просто хочется получать к нему доступ набрав адрес сервера и запросив определённую директорию. Read more …

Tags: , , , , , , , ,

Борьба с ошибкой 1146 «Table `table_name` doesn’t exist when using LOCK TABLES» в СУБД MySQL

Попытался сделать дамп (бэкап) БД через родную для MySQL утилиту mysqldump и получил ошибку:

Got error: 1146: Table `table_name` doesn't exist when using LOCK TABLES

Вместо table_name имя несуществующей таблицы. Т.е. сразу после введения в консоль/терминал команды:

mysqldump --user=root -p db_name > db_name.sql

получаю такую ошибку. Файл дампа создаётся, но он пустой, утилита mysqldump после выдачи этой ошибки перестаёт работать. Read more …

Tags: , , , , , , , ,

Отмена вставки в триггере MySQL

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

Проблема в том, что отменить запрос в триггере MySQL тривиальным образом нельзя. В той же MS SQL Server есть триггеры INSTEAD OF и достаточно просто прописать в триггере ROLLBACK, что бы отменить вставку, но в MySQL команды транзакций использовать в триггерах нельзя. Read more …

Tags: , , , ,

СУБД не отвечает из-за превышения лимита запросов

При работе с СУБД MySQL столкнулся с проблемой которая повергла меня в ступор ибо я долго не мог понять из-за чего это происходит. Симптомы банальны: СУБД тупо не отвечает на посылаемые ей запросы. При этом никаких ошибок так же не отдаёт и исправно принимает запросы. Т.е. запросы уходят к СУБД а в ответ ничего, совсем ничего. Вот уж не знаешь что и думать в такой ситуации. Разумеется перезагрузка сервера баз данных помогает, но ведь это не выход надо искать причину проблем. Read more …

Tags: , , , , ,

The used table type doesn’t support FULLTEXT indexes

Неприятная ошибка, стоит признать. Случается она обычно при переносе базы данных, при поднятии дампа. Говорит о том, что тип используемой таблицы не поддерживает полнотекстовые (FULLTEXT) индексы. Причин том может быть несколько. Об этом и поговорим. Read more …

Tags: ,

Использование составного ключа в БД

Во многих книжках по проектированию баз данных пишут, что составной уникальный ключ это дело очень редкое и сложное, якобы он бывает нужен в редчайших ситуациях и поэтому вообще знать о нём не обязательно. Read more …

Tags: , , ,

Базовые методы оптимизации базы данных

Решил посвятить этой теме целый отдельный пост на своём блоге т.к. это действительно очень важно, особенно когда речь идёт о высоконагруженных проектах. Безусловно переоценить роль оптимизации базы данных очень сложно, ведь от этого зависит многое и в первую очередь производительность вашего продукта работающего с базой данных. Вообще оптимизации баз данных это целая наука, которой можно посвятить целую книгу, в этом деле есть свои тонкости и нюансы. Обычно оптимизацией БД должен заниматься архитектор базы ещё при создании самой модели таблиц и связей. Т.е. об оптимизации думаем сразу при создании базы. В общем я поведаю о базовых методах распределения нагрузки СУБД. Read more …

Tags: , ,

Полнотекстовый поиск с сортировкой по релевантности на основе SQL запроса в СУБД MySQL

Решил написать на эту тему отдельную статью т.к. думаю, что это будет очень интересно для читателей блога. Естественно я не первый кто описывает данный метод, поэтому на правду в последней инстанции не претендую. Вообще когда данный способ поиска с сортировкой по релевантности стал возможен в СУБД MySQL был большой резонанс, многие об этом писали, в частности в US нете. Действительно способ очень интересный, т.к. предоставляет простейший механизм качественного быстрого релевантного полнотекстового поиска по базе данных. Т.е. вы получаете мощнейшую поисковую систему, которая быстро и не ресурсозатратно ищет различные слова и словосочетания (с морфологией) при этом сортирует результаты по релевантности. Сразу скажу, что описанный в статье метод применим к СУБД MySQL, для неё и писался т.к. в работе применяются специфические именно для этой СУБД операторы и индексы, которые не входят в общую спецификацию языка SQL.  Ну да хватит лирических отступлений, давайте переходить к делу.

Read more …

Tags: , ,

Вставка большого количества записей в индексируемую таблицу БД

Наверняка не часто, но всё же случаются такие случаи когда надо вставить большое количество записей в индексируемую таблицу базы данных. Казалось бы и что тут такого? Но всё не так просто! Я говорю о действительно больших массивах данных. Например у нас есть таблица с колонками для которых создан индекс и мы в неё вставляем в неё более 10k новых строк одновременно. Естественно используем SQL оператор INSERT с вариацией множественной вставки. Все знают, что такая громадная операция замедлит работу БД т.к. после каждой строки вставки будут автоматически создаваться индексы, т.е. вся таблица будет сканироваться для обновления информации в индексе. Read more …

Tags: , , ,

Работа с Sypex Dumper и безопасность

Наверное все бывалые веб мастера знают о скрипте Sypex Dumper, который помогает эффективно импортировать и экспортировать большие дамы баз данных. В этом посте поведаю о базовых методах работы с этим простым и удобным скриптом. Read more …

Tags: , ,

Решение извечной проблемы с кодировками в сайтостроении

Приветствую тебя, уважаемый читатель. Речь пойдёт, как уже понятно из названия, о кодировках в web. Не смотря на то, что на эту тему уже написано тонны текстовых материалов, все же проблема остаётся и продолжает иметь место. Read more …

Tags: , , , , , ,

MySQL (Can’t connect … through socket) — решение проблемы

В данном посте я заведу речь о, как в последствии оказалось, весьма наболевшей проблеме связанной с MySQL сервером установленным на машину под управлением операционной системы на базе ядра Linux. Для её решения мне пришлось убить не мало времени, но я всё же таки разобрался в чём же было дело и с радостью поделюсь секретом с Вами. Read more …

Tags: , , , , , , ,

7.27MB | MySQL:62 | 0,123sec