Установка и настройка HandlerSocket и Percona Server в Ubuntu 10.10 из пакетов
В одной из прошлых заметок я писал о плагине к MySQL Handler Socket, и о том, каких результатов можно добаться применяя его. Сейчас модно юзать NoSQL базы, хотя MySQL на порядок быстрее их (вместе с этим плагином) он, по результатам тестов, оказался даже быстрее Memcached! Да и вообще заманчиво использовать NoSQL-решение (HandlerSocket), хранить всё в той же базе, и значительно выигрывать по скорости. Обзорную статью про него я ещё напишу, а пока расскажу, как его можно установить.
Итак есть два варианта:
- Скомпилировать его и установить к обычному MySQL.
- Поставить Percona Server с уже установленным HandlerSocket plugin.
Вчера вышла новая версия Percona 5.1.52-12.3, в которой есть встроенный HandlerSocket, и просто грех этим не воспользоваться. Итак, готовый рецепт такой.
Подготовка к установке
Смотрим, что есть по MySQL в системе;
|
1 |
aptitude search mysql | grep ^i |
Первым делом надо удалить обычный MySQL.
|
1 2 3 |
sudo apt-get remove mysql-server mysql-client sudo apt-get purge mysql-client-core-5.1 sudo apt-get purge mysql-server-core-5.1 |
Установка из пакетов
Для начала ставим генератор паролей:
|
1 |
sudo apt-get install -y pwgen |
И сгенерируем устойчивый пароль для MySQL:
|
1 |
pwgen 16 1 |
|
1 |
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A |
Добавляем две строки в /etc/apt/sources.list
|
1 2 |
sudo "deb http://repo.percona.com/apt-rc maverick main" >> /etc/apt/sources.list sudo "deb-src http://repo.percona.com/apt-rc maverick main" >> /etc/apt/sources.list |
И обновляем пакеты:
|
1 2 3 |
sudo apt-get update sudo gpg -a --export CD2EFD2A | apt-key add - sudo apt-get update |
Ставим пакеты:
|
1 |
sudo apt-get install percona-server-server percona-server-client |
Тестируем соединение:
|
1 2 3 4 5 6 7 8 9 10 11 |
mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 41 Server version: 5.1.52-rel12.3 (Percona Server (GPL), 12.3 , Revision 159) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. |
Отлично, теперь ставим HandlerSocket.
Добавляем в конфиг /etc/mysql/my.cnf в секцию [mysqld] следующие строки:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# # * HandlerSocket # loose_handlersocket_port = 9998 # the port number to bind to for read requests loose_handlersocket_port_wr = 9999 # the port number to bind to for write requests loose_handlersocket_threads = 16 # the number of worker threads for read requests loose_handlersocket_threads_wr = 1 # the number of worker threads for write requests open_files_limit = 65535 # to allow handlersocket to accept many concurrent # connections, make open_files_limit as large as # possible. |
В консоли клиента mysql выполняем команду:
|
1 2 |
mysql> install plugin handlersocket soname 'handlersocket.so'; Query OK, 0 rows affected (0,02 sec) |
И проверяем его установику:
|
1 2 3 4 5 6 7 8 9 10 |
mysql>show plugins; +--------------------------------+----------+-------------------- | Name | Status | Type +--------------------------------+----------+-------------------- | binlog | ACTIVE | STORAGE ENGINE ... | MyISAM | ACTIVE | STORAGE ENGINE | handlersocket | ACTIVE | DAEMON +--------------------------------+----------+-------------------- 29 rows in set (0,00 sec) |
Дальше для удобства, сделаем так, чтобы утилита service понимала mysql.
|
1 |
sudo apt-get install chkconfig |
Посмотрим есть, ли настройки для mysql(percona)
|
1 |
sudo chkconfig --list mysql |
Будет что-то вроде этого:
|
1 |
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off |
Включаем percona(mysql) в service:
|
1 |
sudo chkconfig mysql on |
Всё, теперь Percona Server можно запускать и останавливать вот этими командами:
|
1 2 |
sudo service mysql stop sudo service mysql start |
Всё! HandlerSocket установлен!
UPD. HandlerSocket работает на портах 9999, 9998 БЕЗ АВТОРИЗАЦИИ. Не забывайте об этом на продакшене!
UPD. В пакетах percona-server-5.1 для lucid (ubuntu 10.04) amd64 не плагинов, в частности плагина handlersocket.so.
Ссылки
https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/blob/master/docs-en/protocol.en.txt