Ленивый backup MySQL

Если вы также ленивы как и я, то вы так и не перевели свои старые проекты на postgresql. Если вы также жадны как и я, то вы не купили у вашего хостера услугу backup’а. Но что-то делать надо…

Читать далее Ленивый backup MySQL

Добавляем поддержку emoji в Django+MySQL приложение

В наше время emoji в веб-приложениях — не роскошь, а суровая реальность: любой «мобильный юзер» может написать сообщение, в котором есть эти символы.

И, казалось бы, фича уже не новая — всё должно быть готово для неё. Так и есть в SQLite, PostgreSQL. Но не в MySQL/MariaDB.

Читать далее Добавляем поддержку emoji в Django+MySQL приложение

Мой SQL

Неделю назад провёл семинар по MySQL. Событие не ахти какое, но всё же решил записать на будущее.

24-го сентября и 2-го октября в Екатеринбурге проходили занятия по MySQL. Носили они странное название ‘Мастер-класс «Мой SQL»‘. Организовывали это мероприятия девочки из IT-People, что организовывают различные IT-движухи в Екатеринбурге и области. Два дня по 4 часа с домашним заданием. Билет — 5000 рублей. Планировалось проводить для новичков, но пришли по большей части уже более-менее умелые — пришлось перекраивать программу на ходу.

Несколько выводов, что я сделал:
Читать далее Мой SQL

Чистим разросшийся файл mysql ibdata1

В MySQL есть такой замечательный файл — ibdata1. Замечателен о не только тем, что растёт как дурак, но и тем, что хранит кучу данных сервера.

Начнём с того, что просто удалить его можно, но это приведёт к уничтожению данных таблиц. ibdata1 хранит данные таблиц (кроме схем — они хранятся в других файлах), индексы и прочую информацию. Альтернатива хранению в одном файле — хранить для каждой таблицы эту информацию в отдельном файле. Собственно это я и предлагаю сделать.

  • mysqldump --all-databases > alldb.sql используем, чтобы выгрузить все данные сервера
  • Удаляем все базы кроме служебных mysql.
  • Останавливаем mysql.
  • Добавим в my.cnf (во многих дистрибутивах этот файл лежит в /etc/mysql) в секцию
    [mysqld]

    строчку

    innodb_file_per_table
  • Удаляем /var/lib/mysql/ibdata1 и /var/lib/mysql/ib_logfile* файлы.
  • Поднимаем сервер mysql
  • Заливаем дамп в базу cat alldb.sql | mysql -uroot -p