Переход от Mysql к MariaDB в Gentoo
Быстро и просто переходим от использования СУБД Mysql на использование MariaDB в Gentoo.
Во-первых, что такое MariaDB? Это СУБД, основанная на кодовой базе Mysql разработчиками последней, решившими сделать свою, независимую от Oracle базу (mysql перестала быть таковой после череды покупок - Mysql AB был поглощён фирмой Sun, а та, в свою очередь, поглощена Oracle). Вряд ли Oracle имеет большое желание развивать распространяемый бесплатно продукт, в каких-то сферах конкурирующий с продуктами компании - релизы и новые функции в mysql после покупки её Oracl'ом стали появляться всё реже.
Во-вторых, зачем, если оно и так работает? MariaDB имеет более высокую производительность, особенно - при большом числе одновременных запросов в единицу времени (подробности тут), а так же новые типы хранилищ (engines), и множество мелких улучшений (подробнее), и, кроме того, не принадлежит коммерческой корпорации.
Замена осуществляется "прозрачно", mariadb будет использовать тот же каталог с файлами баз данных, что использовался раньше mysql. Шаги для замены одной базы на другую следующие:
1) На всякий случай, снимите полный дамп существующей базы:
mysqldump -u root --all-databases > ~/mysql_all.sql
2) Если были какие-то особые правки в package.use - подправляем его, чтобы mariadb собиралась с теми же use-флагами, что и mysql.
3) Останавливаем демона mysql
/etc/init.d/mysql stop
4) Удаляем mysql
emerge --unmerge mysql
5) Устанавливаем mariadb
emerge -av -1 --autounmask-write mariadb
Сначала оно может ругнуться на то, что нет нужных kayword'ов - для этого вставляем опцию --autounmask-write, и утвердительно отвечаем на запрос. Если началась установка - хорошо, если написало про то, что нужно запустить dispatch-conf, запускаем его, и жмём u (use-new), после чего снова вводим команду на установку mariadb.
После установки не забываем запустить etc-update, обновляем my.cnf. Затем, если вам не нужна опция log-bin - откройте my.cnf и закомментируйте строчку log-bin (если вы не знаете, что это за опция - скорее всего, она вам не нужна).
6) Запускаем демона обратно
/etc/init.d/mysql start
Почему mysql, а не mariadb? Mariadb позиционируется как "drop-in" замена, т.е.обещают совпадение имён исполняемых файлов и скриптов, что очень удобно для пользователя - ничего донастраивать не надо.
7) Обновляем каталог файлов БД, приводя их в соответсвтие с новой СУБД:
mysql_upgrade -u root -p
mysqlcheck --repair --all-databases -u root -p
Если пароль на пользователя root в базе не задавался, опцию -p можно опустить.
Собственно, всё. После этого база обновлена. Лично у меня после этого отказалась работать самописная программка и php, оба ругались на libmysql. Вылечилось банальной перекомпиляцией.
До замены, на mysql тестовая программка требовала 50 секунд на один проход, после - порядка 38..40 секунд. Для большей производительности, попробуйте изменить тип таблиц на aria (тот же MyIsam, но с оптимизациями по производительности), делается это следующей командой в терминале mysql :
alter table TABLENAME engine=aria;
Вот и всё. Удачи и хороших скоростей вам!
Комментариев нет:
Отправить комментарий