nomarketing

nomarketing
Рейтинг
198
Регистрация
23.09.2009
lealhost:
Скачайте архив tar.gz отсюда, раз там нет: ftp://ftp.heanet.ie/mirrors/www.mysql.com/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz
Забудьте про пакеты mysql-devel просто, не будет она с ними работать, ей этот архив нужен.
Фишка с перемещением файлов работает только для MariaDB 10/mysql5.6, я это не учел в начале и наставил Вас на неправильный путь.

Далее, как я уже писал, распаковываете, заходите: cmake . && cd include && make
И компилируете пинбу.

Не знаю просто не знаю как у вас это получается :)

Скачал по вашей ссылки, архив, положил его в /tmp/mysqlsource/

-Распакова

-Зашел в папку

-Ввел cmake .

и.....


[root@localhost mysql-5.1.73]# cmake .
-- The C compiler identification is GNU 4.4.7
-- The CXX compiler identification is GNU 4.4.7
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:24 (INCLUDE):
include could not find load file:

win/configure.data


-- Detected 64-bit platform.
build MYISAM as static library
build CSV as static library
build MYISAMMRG as static library
build HEAP as static library
build BLACKHOLE as DLL
build INNOBASE as DLL
build INNODB_PLUGIN as DLL
build FEDERATED as DLL
build EXAMPLE as DLL
build ARCHIVE as DLL
-- Configuring incomplete, errors occurred!
See also "/tmp/mysqlsource/mysql-5.1.73/CMakeFiles/CMakeOutput.log".


Просто я не пойму почему все так просто описанно а на самом деле вот такое вот происходит..

lealhost:
Фишка с перемещением файлов проходит только с версией MariaDB 10, думаю, с MySQL 5.6 тоже прокатит.

Для всех остальных версий, качайте .tar.gz с сайта http://downloads.mysql.com/archives/community/ Select Platform: Source Code

Кстати, для версии 5.5.42 на сайте не нашел.
Поэтому делал немного другим путем

cd /usr/local/src
wget http://ftp.kaist.ac.kr/mysql/Downloads/MySQL-5.5/MySQL-5.5.42-1.el6.src.rpm
rpm2cpio MySQL-5.5.42-1.el6.src.rpm | cpio -idmv
tar -xvf mysql-5.5.42.tar.gz
cd mysql-5.5.42
cmake .
cd include
make


Затем переходим в директорию c pinba и указываем в --with-mysql=/usr/local/src/mysql-5.5.42 . Далее конфигурируем, собираем и т.д.
Стоит заметить, что если будете обновлять MySQL, то и модуль придется пересобирать.

yum install cmake - если нет этого пакета.

Спасибо !

Но вопрос в другом ! при команде make pinba ругается на отсуцтвие файлов которых нигде нет ! т.е если качать как вы говорите то там нет файлов handler.h structs.h field.h

Вот весь код ошибки



make[2]: Entering directory `/tmp/prog/pinba_engine-master/src'
/bin/sh ../libtool --preserve-dup-deps --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/tmp/mysqlsource/sql -I/ tmp/mysqlsource/include -I/tmp/mysqlsource/regex -I/tmp/mysqlsource -g -O2 -I/usr/local/include -I/usr/local/incl ude -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NOTEST -MT pinba.pb-c.lo -MD -MP -MF .deps/pinba.pb-c.Tpo -c -o pinb a.pb-c.lo pinba.pb-c.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/tmp/mysqlsource/sql -I/tmp/mysqlsource/include -I/tmp/mysqlsource/rege x -I/tmp/mysqlsource -g -O2 -I/usr/local/include -I/usr/local/include -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NO TEST -MT pinba.pb-c.lo -MD -MP -MF .deps/pinba.pb-c.Tpo -c pinba.pb-c.c -fPIC -DPIC -o .libs/pinba.pb-c.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/tmp/mysqlsource/sql -I/tmp/mysqlsource/include -I/tmp/mysqlsource/rege x -I/tmp/mysqlsource -g -O2 -I/usr/local/include -I/usr/local/include -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NO TEST -MT pinba.pb-c.lo -MD -MP -MF .deps/pinba.pb-c.Tpo -c pinba.pb-c.c -o pinba.pb-c.o >/dev/null 2>&1
mv -f .deps/pinba.pb-c.Tpo .deps/pinba.pb-c.Plo
/bin/sh ../libtool --preserve-dup-deps --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I/tmp/mysqlsource/sql -I /tmp/mysqlsource/include -I/tmp/mysqlsource/regex -I/tmp/mysqlsource -g -O2 -fno-exceptions -fno-rtti -I/usr/loca l/include -I/usr/local/include -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NOTEST -MT ha_pinba.lo -MD -MP -MF .deps/ ha_pinba.Tpo -c -o ha_pinba.lo ha_pinba.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I/tmp/mysqlsource/sql -I/tmp/mysqlsource/include -I/tmp/mysqlsource/rege x -I/tmp/mysqlsource -g -O2 -fno-exceptions -fno-rtti -I/usr/local/include -I/usr/local/include -DMYSQL_DYNAMIC_PLUG IN -DNDEBUG -DJUDYERROR_NOTEST -MT ha_pinba.lo -MD -MP -MF .deps/ha_pinba.Tpo -c ha_pinba.cc -fPIC -DPIC -o .libs/h a_pinba.o
ha_pinba.cc:36:24: error: sql/field.h: No such file or directory
ha_pinba.cc:37:26: error: sql/structs.h: No such file or directory
ha_pinba.cc:38:26: error: sql/handler.h: No such file or directory
In file included from ha_pinba.cc:42:
/tmp/mysqlsource/include/my_dir.h:95: error: ‘myf’ has not been declared
/tmp/mysqlsource/include/my_dir.h:97: error: ‘myf’ has not been declared
/tmp/mysqlsource/include/my_dir.h:98: error: ‘myf’ has not been declared
In file included from ha_pinba.cc:47:
ha_pinba.h:44: error: ‘THR_LOCK’ does not name a type
ha_pinba.h:64: error: expected class-name before ‘{’ token
ha_pinba.h:65: error: ‘THR_LOCK_DATA’ does not name a type
ha_pinba.h:76: error: ‘my_off_t’ has not been declared
ha_pinba.h:129: error: ‘TABLE_SHARE’ has not been declared
ha_pinba.h:139: error: ‘ulonglong’ does not name a type
ha_pinba.h:161: error: ‘uint8’ does not name a type
ha_pinba.h:172: error: use of enum ‘ha_rkey_function’ without previous declaration
ha_pinba.h:186: error: ‘TABLE’ has not been declared
ha_pinba.h:186: error: ‘HA_CREATE_INFO’ has not been declared
ha_pinba.h:189: error: ISO C++ forbids declaration of ‘THR_LOCK_DATA’ with no type
ha_pinba.h:189: error: expected ‘;’ before ‘*’ token
ha_pinba.h: In member function ‘ulong ha_pinba::index_flags(uint, uint, bool) const’:
ha_pinba.h:146: error: ‘HA_READ_NEXT’ was not declared in this scope
ha_pinba.h:146: error: ‘HA_READ_PREV’ was not declared in this scope
ha_pinba.h:146: error: ‘HA_READ_ORDER’ was not declared in this scope
ha_pinba.h:146: error: ‘HA_ONLY_WHOLE_INDEX’ was not declared in this scope
ha_pinba.h: In member function ‘uint ha_pinba::max_supported_record_length() const’:
ha_pinba.h:155: error: ‘HA_MAX_REC_LENGTH’ was not declared in this scope
ha_pinba.cc: At global scope:
ha_pinba.cc:87: error: expected initializer before ‘*’ token
ha_pinba.cc:91: error: ‘HASH’ does not name a type
ha_pinba.cc:254: error: ‘pinba_parse_params’ declared as an ‘inline’ variable
ha_pinba.cc:254: error: ‘TABLE’ was not declared in this scope
ha_pinba.cc:254: error: ‘table’ was not declared in this scope
ha_pinba.cc:254: error: expected primary-expression before ‘unsigned’
ha_pinba.cc:254: error: expected primary-expression before ‘*’ token
ha_pinba.cc:254: error: ‘share’ was not declared in this scope
ha_pinba.cc:254: error: initializer expression list treated as compound expression
ha_pinba.cc:255: error: expected ‘,’ or ‘;’ before ‘{’ token
make[2]: *** [ha_pinba.lo] Error 1
make[2]: Leaving directory `/tmp/prog/pinba_engine-master/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/prog/pinba_engine-master/src'
make: *** [all-recursive] Error 1

Я хочу поставить на 5.1.73 стандартную версию, но в исходниках ее нет. Т.е где вы указали качать.

Но я делаю yum mysql-devel и они появляются в директории /usr/include/mysql

Просто дело в том, что ничего не сходится вообще, почему пинба требует файлы которых нет в исходниках ?

Или рекомендует сделать make в папке includes ? хотя в этой папке /usr/include/mysql ни make ни cmake . не работаю !

Потому что там их нет ! Во дела то ? как вообще такое возможно что такое происходит ? ((((

Я даже качал отсюда ftp://ftp.heanet.ie/mirrors/www.mysql.com/Downloads/MySQL-5.1/

Распаковывал его

MySQL-devel-community-5.1.73-1.rhel5.x86_64.rpm

Но там нет тех файлов которые требует пинба.

Вы скажите как вы так быстро сделали это ? как я понимаю сурсы находятся в файле .tar ? 5.5.42 мне надо скачать его разархивировать и вытянуть оттуда только нужное ? и потом это нужное указать в пути при конфигурации pinba ?

ftp://ftp.heanet.ie/mirrors/www.mysql.com/Downloads/MySQL-5.5/

Странно мне просто интересно как вы это делаете... я скачал новую версию самую посленюю 5.6

Установил ее, потом установил для нее yum mysql-devel как вы и говорили.

Cобрал конфиг на отлично.

А вот при команде

make

Вылетают ошибки что нет файлов

ha_pinba.cc:36:24: error: sql/field.h: No such file or directory
ha_pinba.cc:37:26: error: sql/structs.h: No such file or directory
ha_pinba.cc:38:26: error: sql/handler.h: No such file or directory

Но этих файлов так же нет в сурсах - установленных коммандой yum mysql-delve и как так получается ?

И второй вопрос, как вы узнали об архитектуре папок для пинбы ? :) просто я в мануалах нигде подобного не встречал в том плане sql/ /mysql /include папки что бы были..

Добью его все таки этого пинбу 80того уровня ) потом как все получится сделаю мануал - а то видать для таких как я новичков в этом деле ничего не предусмотрели..🤪

ага нашел на просторах интернета вот что

mysql-5.5.25 lp:mysql-server/5.5

Оказуется эти папки "sql" и файлы типа "field.h" есть только в этой версии ? "mysql-5.5.25" ??? в общем пока что нет сил, понимать это. Никто толком не может мне тыкнуть пальцем что я не усматриваю, выбился не много но не здаюсь :)

lealhost:
Скомпилировал плагин для Вашей версии MySQL 5.5.42: https://lealhost.com/up/libpinba_engine.zip
Файлы из архива необходимо кинуть в /usr/lib64/mysql/plugin
Потом подключить плагин в MySQL и создать БД и таблицы - все написано в README, прописать pinba_port=3300 в /etc/my.cnf и перезагрузить сервер.

Долго объяснять сейчас на ночь как и что, будет время - расскажу. :)

Спасибо ! за помощь, но мне важна часть именно установки, т.е понять как это ставится.. для себя а не просто что бы готово было, как в данном случае :) но я все равно пока буду пытатся понять как это сделать. Если вы мне пошагово обьясните может даже за деньги

Andreyka:
Могу научить, если это нужно
Обучал уже много людей, есть отзывы
А могу собрать готовый пакет под нужную версию софта, который будет легко поставить через yum/rpm

Поставил я вместо базового пакета centos 5.1.73 > 5.5.42

Теперь нельзя получить через yum install mysql-devel.

Пишет что установлен #remi 5.5.42 вообщем как я понял идет конфликт - но там предлагается использовать broken мол пропустить, но ! Если я так сделаю, то все равно получи исходники 5.1.73

Вопрос, откуда взять исходники для версии 5.5.42 (что бы было как yum install) только для 5.5.42 версии ?

Просто я не могу пока что разобратся исходниками откуда их брать если не через юм, если вам трудно помочь, тогда наверно прибегу к платной услуге что бы мне рассказали все пошагово, хотя именно этот шаг не могу понять - выполнить. Самый последний..

lealhost:
попробуйте, yum install libtool


Package libtool-2.2.6-15.5.el6.x86_64 already installed and latest version

Какой то непобедимый этот pinba кто то там говорил 5 мин делов его ставить, а тут целый квест 80 уровня..

Чесно говоря уже не знаю что и думать - делать, может это все из за версии 5.1.73 ? Может нужно поставить новее 5.5.* ? и там проделывать подобное ?

Но если так, тогда можно ставить через yum версию 5.5 ? или нунжо качать ее и собирать самому ?

Сколько всего, что бы поставить пинбу.. просто найс, может есть какие нибудь другие варианты пинбы - или ильтернативы..

lealhost:
mv /tmp/source_mysql/private/ /tmp/source_mysql/sql/
Эта команда, просто переименует private в sql

Да, уже посмотрел исходники MySQL 5.1, у вас этой папки нет. остановитесь с разборкой исходников на этом, и попробуйте выполнить конфигурирование и посмотрите какую ошибку выдаст.

Что то не пойму где этот judy установлен.. т.е я поиском нашел директорию его но пишет что нет хидеров джуди там...

Вот такой конфиг получился

./configure --with-mysql=/tmp/source_mysql --with-judy=/usr/local/src/protobuf-2.5.0/judy-1.0.5 --with-event=/opt/libevent --libdir=/usr/lib64/mysql/plugin

Я даже проверяю так установлен ли жуди

man Judy --version

man, version 1.6f

Но где его хидеры.. уже все перепробовал и /usr/local /usr/inlcude

Походу у меня вот этот RPM

http://rpm.pbone.net/index.php3/stat/4/idpl/23502408/dir/centos_6/com/Judy-devel-1.0.5-5.1.i686.rpm.html

У меня есть

/usr/include/Judy.h

Но нету

/usr/lib64/libJudy.so

Указал просто директорию просто /usr (пошло)

Потом, выполнил

make

и вуаля :)


Making all in src
make[1]: Entering directory `/usr/local/src/pinba_engine-master/src'
make all-am
make[2]: Entering directory `/usr/local/src/pinba_engine-master/src'
preserve-dup-deps --mode=compile gcc -DHAVE_CONFIG_H -I. -I/tmp/source_mysql/sql -I/tmp/source_mysql/include -I/tmp/source_mysql/regex -I/tmp/source_mysql -g -O2 -I/opt/libevent/include -I/usr/include -DMYSQL_DYNAMIC_PLUGIN -DNDEBUG -DJUDYERROR_NOTEST -MT pinba.pb-c.l o -MD -MP -MF .deps/pinba.pb-c.Tpo -c -o pinba.pb-c.lo pinba.pb-c.c
make[2]: preserve-dup-deps: Command not found
make[2]: [pinba.pb-c.lo] Error 127 (ignored)
mv -f .deps/pinba.pb-c.Tpo .deps/pinba.pb-c.Plo
mv: cannot stat `.deps/pinba.pb-c.Tpo': No such file or directory
make[2]: *** [pinba.pb-c.lo] Error 1
make[2]: Leaving directory `/usr/local/src/pinba_engine-master/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/local/src/pinba_engine-master/src'
make: *** [all-recursive] Error 1

Я пот вот этому мануалу все иснсталировал

https://groups.google.com/forum/#!topic/pinba-engine/0pHvzS0DH_o

lealhost:
Сомневаюсь подойдет ли этот пакет для любой версии MySQL, но можно попробовать:
[root@s1 src]# rpm -qlip mysql*

warning: mysql-plugin-pinba-0.0.6-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 47bb7acc: NOKEY
Name : mysql-plugin-pinba Relocations: (not relocatable)
Version : 0.0.6 Vendor: (none)
Release : 1.el6 Build Date: Mon 26 Sep 2011 01:38:07 AM MSK
Install Date: (not installed) Build Host: builder-x86_64-el6.aclub.net
Group : Applications/Databases Source RPM: mysql-plugin-pinba-0.0.6-1.el6.src.rpm
Size : 437031 License: GPL
Signature : DSA/SHA1, Mon 26 Sep 2011 01:38:10 AM MSK, Key ID f48586d347bb7acc
URL : http://pinba.org/
Summary : Pinba MySQL plugin/engine
Description :
Pinba plugin/engine for MySQL for store pinba php extension performance data
/usr/lib64/mysql/plugin/libpinba_engine.so
/usr/lib64/mysql/plugin/libpinba_engine.so.0
/usr/lib64/mysql/plugin/libpinba_engine.so.0.0.0
/usr/share/doc/mysql-plugin-pinba-0.0.6
/usr/share/doc/mysql-plugin-pinba-0.0.6/NEWS
/usr/share/doc/mysql-plugin-pinba-0.0.6/README
/usr/share/doc/mysql-plugin-pinba-0.0.6/TODO
/usr/share/doc/mysql-plugin-pinba-0.0.6/default_tables.sql
/usr/share/doc/mysql-plugin-pinba-0.0.6/mysql-pinba.cnf

И у меня еще нет этих двух файлов

mv /tmp/source_mysql/private/ /tmp/source_mysql/sql/
cp /tmp/source_mysql/plugin_ftparser.h /tmp/source_mysql/sql/

И вопрос, sql и mysql это так надо ? т.е две разных или просто ошибка ? ну просто до MV идет копирование в директорию mysql а потом в sql

lealhost:
Я просто перемещал файлы туда, где pinba хотел их видеть.
Давайте начнем сначала.

1. Скачайте версию pinba из github'а:

cd /usr/local/src
wget https://github.com/tony2001/pinba_engine/archive/master.zip
unzip master.zip
cd pinba_engine-master
./buildconf.sh


Затем разберемся с исходниками MySQL. Давайте создадим новую директорию, в которую мы скопируем исходники, чтобы не портить оригинальные.
Директорию с которой будем работать: /tmp/source_mysql/.
Создаем ее и копируем исходники:

mkdir -p /tmp/source_mysql
cp /usr/include/mysql/* /tmp/source_mysql -R


Теперь, создадим архитектуру файлов, которую желает видеть pinba:

mkdir -p /tmp/source_mysql/include/mysql
cp /tmp/source_mysql/my_dir.h /tmp/source_mysql/include/
cp /tmp/source_mysql/plugin.h /tmp/source_mysql/include/mysql/
cp /tmp/source_mysql/mysql.h /tmp/source_mysql/include/
cp /tmp/source_mysql/mysql_version.h /tmp/source_mysql/include/
mv /tmp/source_mysql/private/ /tmp/source_mysql/sql/
cp /tmp/source_mysql/plugin_ftparser.h /tmp/source_mysql/sql/
cp /tmp/source_mysql/plugin.h /tmp/source_mysql/sql/

Выполняйте лучше по одной команде.

Каталог с плагинами mysql лежит в
/usr/lib64/mysql/plugin - для x86_64 ОС
cd /usr/lib/mysql/plugin - для x32 ОС

Соответственно, подставляем данный каталог в параметр конфигурации.
И конфигурируем. Обратите внимания, что директорию для --with-mysql Вы также должны изменить на /tmp/source_mysql

./configure --with-mysql=/tmp/source_mysql --with-judy=/путь_до_judy --with-event=/путь_до_event --libdir=/usr/lib64/mysql/plugin

Если ошибок нет, то продолжаем.


make

Если ошибок нет, то продолжаем.
make install


Смотрим, установился ли плагин в необходимую нам директорию:
ls -la /usr/lib64/mysql/plugin/libpinba_engine.so


Если видим файл, то подключаем плагин к MySQL, как написано в инструкции.
Для начала войдите в mysql-client с помощью команды mysql -uroot -p, введите пароль, и дальше по инструкции:
3.2. Plugin installation
------------------------

And then in MySQL console execute:

mysql> INSTALL PLUGIN pinba SONAME 'libpinba_engine.so';

I'd also suggest you to create a separate database, this way:

mysql> CREATE DATABASE pinba;

And then create the default tables:

# mysql -D pinba < default_tables.sql

If you did `make install` or used a precompiled package, look for default_tables.sql in /usr/share/pinba_engine directory.



Если все получилось, прописываем в /etc/my.cnf, в раздел [mysqld]:

pinba_port=3300


И перезагружаем сервер.

Спасибо большое за пояснение, но у меня тут же вылетела ошибка..

./buildconf.sh

make: *** [aclocal.m4] Error 127

Пытаюсь понять что нужно установить, что бы выполнился файл, а так спасибо огромное что пояснили что да как, если решу попытаюсь выполнить все по инструкции

Ага, нужно установить вот так - может у кого тоже такая проблема будет

Вот

yum install automake

yum install libtool

потом выполнять

./buildconf.sh

lealhost:
Вы установили пакет mysql-devel?
То что у Вас есть - это сервер, готовый и скомпилированный. Ничего удалять не нужно.
Установите mysql-devel для начала.

yum install mysql-devel

Установил теперь есть папка

/usr/include/mysql

Делаю так как в найденном мануале (только я подставил Include папку, не знаю верно или нет)


./configure \
--with-mysql=/usr/include/mysql \
--with-judy=/usr/local \
--with-protobuf=/usr/local \
--with-event=/usr \
--libdir=/usr/lib/mysql/plugin
make install

Пишет ошибку



checking for MySQL source code... configure: error: Failed to find required header file include/my_dir.h in /u sr/include/mysql, check the path and make sure you've run './configure ..<options>.. && cd include && make' in MySQL sources dir



---------- Добавлено 03.03.2015 в 12:03 ----------

pupseg:
дайте в личку доступ на сервер

У меня на локалхосте, я бы н рискнул так играться с сервером :) а то поустанавливал бы там всего что откат надо было бы делать.

У меня именно проблема с понятием установки последнего шага, я просто это делаю первый раз, тем более я всегда все делал из момента обучение через YUM. А тут такое, и собрать и разобрать, но тот кто знает сделает это быстро, я все шаги выполнил кроме последнего, ибо не понимаю что там нужно сделать и откуда брать те исходники так как половину папок у меня нет которые пишут в мануалах..

---------- Добавлено 03.03.2015 в 12:13 ----------

Странно почему он говорит что нету файла

my_dir.h в /usr/include/mysql хотя я только что проверил и он там есть !

И еще нету директории "/usr/lib/mysql/plugin "

Всего: 764