mariadb + handlersocket

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

Ответить
storm2005
Сообщения: 136

mariadb + handlersocket

Сообщение storm2005 »

Надо прикрутить handlersocket к mariadb
OS: OpenSuse 13.1
mariadb-5.5.33
На оф. сайте mariadb:
Beginning with MariaDB 5.3.0, the HandlerSocket plugin is included in both source and binary distributions.

Но в сюзи после установки его нет

Код: Выделить всё

ls
$ ls /usr/lib64/mysql/plugin/ |grep hand
$

А вот, например на gentoo c mariadb 5.5.40-r1 есть.

Код: Выделить всё

$ ls /usr/lib/mysql/plugin/ |grep hand
handlersocket.so

Там делаем как написано на оф. сайте

Код: Выделить всё

INSTALL PLUGIN handlersocket SONAME 'handlersocket.so';

Задаем настройки в конфиге и все работает.

Хотелось бы также и на сюзе. Бо компиляция самого плагина согласно докам на handlersocket заканчивает черт знает чем:

Код: Выделить всё

./autogen.sh
./configure --with-mysql-source=../mariadb-5.5.33
make
<много лишнего теста>

                 from mysql_incl.hpp:26,
                 from database.cpp:16:
/home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/handler.h:2139:15: error: 'virtual int handler::index_next(uchar*)' is protected
   virtual int index_next(uchar * buf)
               ^
database.cpp:846:38: error: within this context
  r = hnd->index_next(table->record[0]);
                                      ^
In file included from /home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/datadict.h:18:0,
                 from /home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/table.h:23,
                 from /home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/field.h:29,
                 from /home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/unireg.h:170,
                 from /home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/sql_class.h:30,
                 from mysql_incl.hpp:26,
                 from database.cpp:16:
/home/sv/tmp/hs-5.5.33/mariadb-5.5.33/sql/handler.h:2147:15: error: 'virtual int handler::index_next_same(uchar*, const uchar*, uint)' is protected
   virtual int index_next_same(uchar *buf, const uchar *key, uint keylen);
               ^
database.cpp:853:63: error: within this context
  r = hnd->index_next_same(table->record[0], key_buf, kplen_sum);
                                                               ^
make[2]: *** [handlersocket_la-database.lo] Error 1
make[2]: Leaving directory `/home/sv/tmp/hs-5.5.33/HandlerSocket-Plugin-for-MySQL/handlersocket'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/sv/tmp/hs-5.5.33/HandlerSocket-Plugin-for-MySQL'
make: *** [all] Error 2



Если посмотреть флаги компиляции mariadb на разных ОС

suse

Код: Выделить всё

Configured with: ../configure
--prefix=/usr
--infodir=/usr/share/info
--mandir=/usr/share/man
--libdir=/usr/lib64
--libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release
--with-gxx-include-dir=/usr/include/c++/4.8
--enable-ssp
--disable-libssp
--disable-plugin
--with-bugurl=http://bugs.opensuse.org/
--with-pkgversion='SUSE Linux'
--disable-libgcj
--disable-libmudflap
--with-slibdir=/lib64
--with-system-zlib
--enable-__cxa_atexit
--enable-libstdcxx-allocator=new
--disable-libstdcxx-pch
--enable-version-specific-runtime-libs
--enable-linker-build-id
--program-suffix=-4.8
--enable-linux-futex
--without-system-libunwind
--with-arch-32=i586
--with-tune=generic
--build=x86_64-suse-linux

gentoo

Код: Выделить всё

Configured with:
/var/tmp/portage/sys-devel/gcc-4.8.3/work/gcc-4.8.3/configure
--host=i686-pc-linux-gnu
--build=i686-pc-linux-gnu
--prefix=/usr
--bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.8.3
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.8.3/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.8.3
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.8.3/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.8.3/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.8.3/include/g++-v4
--with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.8.3/python
--enable-languages=c,c++,fortran
--enable-obsolete
--enable-secureplt
--disable-werror
--with-system-zlib
--enable-nls
--without-included-gettext
--enable-checking=release
--with-bugurl=https://bugs.gentoo.org/
--with-pkgversion='Gentoo 4.8.3 p1.1, pie-0.5.9'
--enable-libstdcxx-time
--enable-shared
--enable-threads=posix
--enable-__cxa_atexit
--enable-clocale=gnu
--disable-multilib
--disable-altivec
--disable-fixed-point
--with-arch=i686
--enable-targets=all
--disable-libgcj
--enable-libgomp
--disable-libmudflap
--disable-libssp
--enable-lto
--without-cloog
--enable-libsanitizer

то можно увидеть, что у сюзи есть флаг --disable-plugin.
Возможно стоит пересобрать пакет без этого флага? Или может быть у кого-то получилось собрать handlersocket для mariadb?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: mariadb + handlersocket

Сообщение Bizdelnick »

https://build.opensuse.org/package/view_fil...ld.inc?expand=1
Строка 54:

Код: Выделить всё

        --without-plugin-handlersocket \
Можно попробовать её удалить и пересобрать пакет, но подозреваю, что её не от хорошей жизни добавили.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
storm2005
Сообщения: 136

Re: mariadb + handlersocket

Сообщение storm2005 »

Bizdelnick писал(а):
26.11.2014 22:27
https://build.opensuse.org/package/view_fil...ld.inc?expand=1
Строка 54:

Код: Выделить всё

        --without-plugin-handlersocket \
Можно попробовать её удалить и пересобрать пакет, но подозреваю, что её не от хорошей жизни добавили.


Попробовал пересобрать с удалением этой строки. Плагин в /usr/lib64/mysql/plugin так и не появился.
Также попробовал пересобрать с опцией --with-plugin-handlersocket. rpm-ки собрались, я их установил, но плагина опять нет.

Собираю командой

Код: Выделить всё

/usr/src/packages/SPECS> rpmbuild -ba mariadb.spec
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: mariadb + handlersocket

Сообщение Bizdelnick »

Выложите лог сборки на какой-нибудь pastebin и дайте ссылку.

storm2005 писал(а):
27.11.2014 15:25
/usr/src/packages/SPECS>

А почему там? От рута, что ли, собираете? src.rpm ставятся от юзера, распаковываются при этом в $HOME/rpmbuild (или $HOME/rpm, не помню уже), и собираются также от обычного юзера.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
storm2005
Сообщения: 136

Re: mariadb + handlersocket

Сообщение storm2005 »

Bizdelnick писал(а):
27.11.2014 15:38
Выложите лог сборки на какой-нибудь pastebin и дайте ссылку.

storm2005 писал(а):
27.11.2014 15:25
/usr/src/packages/SPECS>

А почему там? От рута, что ли, собираете? src.rpm ставятся от юзера, распаковываются при этом в $HOME/rpmbuild (или $HOME/rpm, не помню уже), и собираются также от обычного юзера.


А как найти лог? Или необходимо запустить как -то так
rpmbuild -ba mariadb.spec > build.log 2>&1

Или как-то передать параметр -DCMAKE_VERBOSE_MAKEFILE?

По поводу как собираю. Установил исходники

Код: Выделить всё

zypper si mariadb

Они установились в /usr/src/packages/SOURCES. В каталоге /usr/src/packages/SPECS соявился файл mariadb.spec.
После сборки забираю rpm-ки отсюда - /usr/src/packages/RPMS/x86_64. Также после сборки появляется пакет /usr/src/packages/SRPMS/mariadb-5.5.33-2.2.src.rpm
Поначалу собирал от рута. Потом понял, что это плохо. Сделал своего юзера рекурсивно владельцем /usr/src/packages/ и собираю под своей учеткой.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: mariadb + handlersocket

Сообщение Bizdelnick »

storm2005 писал(а):
27.11.2014 16:03
Или необходимо запустить как -то так
rpmbuild -ba mariadb.spec > build.log 2>&1

Да.

storm2005 писал(а):
27.11.2014 16:03
По поводу как собираю. Установил исходники

Код: Выделить всё

zypper si mariadb

Они установились в /usr/src/packages/SOURCES.

Не уверен, как ведёт себя zypper, но, возможно, и он, будучи запущенным от имени непривилегированного пользователя, установит исходники в $HOME. rpm -i, по крайней мере, делает так.
Собирать пакеты с помощью rpmbuild от рута категорически противопоказано. Ошибка в спеке - и система загажена, а то и убита. Либо от юзера, либо в chroot (для чего в suse есть специальный скрипт под названием, ЕМНИП, build).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
storm2005
Сообщения: 136

Re: mariadb + handlersocket

Сообщение storm2005 »

Установил от юзера

Код: Выделить всё

zypper si mariadb

удалил из файла build.inc строку

Код: Выделить всё

--without-plugin-handlersocket \

Запустил сборку

Код: Выделить всё

~/rpmbuild/SPECS> rpmbuild -ba mariadb.spec 2>&1 | tee ../build.log

build.log
Меня смущает строка

Код: Выделить всё

14513 + rm -f /home/sv/rpmbuild/BUILDROOT/mariadb-5.5.33-2.2.x86_64/usr/lib64/mysql/plugin/handlersocket.so
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: mariadb + handlersocket

Сообщение MrClon »

А пакеты из репов самой марии смотрел? Может там нужный плагин есть. Правда там только версия 10.0.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: mariadb + handlersocket

Сообщение Bizdelnick »

storm2005 писал(а):
27.11.2014 19:19
Меня смущает строка

Код: Выделить всё

14513 + rm -f /home/sv/rpmbuild/BUILDROOT/mariadb-5.5.33-2.2.x86_64/usr/lib64/mysql/plugin/handlersocket.so

Правильно смущает. Это из install.inc, 13 строка. Надо убрать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
storm2005
Сообщения: 136

Re: mariadb + handlersocket

Сообщение storm2005 »

Итак, подведем итог геммороя с mariadb:
1. Получилось скомпилировать версию 5.5.33, 10.0.11, 10.1.1 с handlersocket. Последние две из этого репо - http://download.opensuse.org/repositories/...e/openSUSE_13.1
2. Если желания заниматься компилированием нет и желаемая версия не имеет значения, то можно подключить репу с mariadb как советовали выше.

Есдинственное, что при установке из этой репы ругается на systemd. Я так понял, что изначально собирали под redhat.

Код: Выделить всё

zypper in MariaDB-server
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 3 NEW packages are going to be installed:
  MariaDB-client MariaDB-common MariaDB-server

3 new packages to install.
Overall download size: 95.3 MiB. After the operation, additional 522.2 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package MariaDB-common-10.0.15-1.x86_64                                                                                                                                                       (1/3),  20.1 KiB (173.9 KiB unpacked)
Retrieving: MariaDB-10.0.15-opensuse13_1-x86_64-common.rpm .............................................................................................................................................................................[done]
Retrieving package MariaDB-client-10.0.15-1.x86_64                                                                                                                                                       (2/3),  24.3 MiB (147.7 MiB unpacked)
Retrieving: MariaDB-10.0.15-opensuse13_1-x86_64-client.rpm ...............................................................................................................................................................[done (717.3 KiB/s)]
Retrieving package MariaDB-server-10.0.15-1.x86_64                                                                                                                                                       (3/3),  71.0 MiB (374.4 MiB unpacked)
Retrieving: MariaDB-10.0.15-opensuse13_1-x86_64-server.rpm ...............................................................................................................................................................[done (325.3 KiB/s)]
(1/3) Installing: MariaDB-common-10.0.15-1 .............................................................................................................................................................................................[done]
Additional rpm output:
warning: /var/cache/zypp/packages/mariadb/rpms/MariaDB-10.0.15-opensuse13_1-x86_64-common.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY


(2/3) Installing: MariaDB-client-10.0.15-1 .............................................................................................................................................................................................[done]
Additional rpm output:
warning: /var/cache/zypp/packages/mariadb/rpms/MariaDB-10.0.15-opensuse13_1-x86_64-client.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY


(3/3) Installing: MariaDB-server-10.0.15-1 .............................................................................................................................................................................................[done]
Additional rpm output:
warning: /var/cache/zypp/packages/mariadb/rpms/MariaDB-10.0.15-opensuse13_1-x86_64-server.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY

Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.

mysql                     0:off  1:off  2:on   3:on   4:on   5:on   6:off
grep: /etc/redhat-release: No such file or directory

Ну а так после

Код: Выделить всё

systemctl enable mysql.service
systemctl start mysql.service

Все завелось.
Спасибо сказали:
Ответить