Продолжение темы can't install pinba on mysql 5.5.16

1,020 views
Skip to first unread message

Nafania

unread,
Sep 27, 2011, 4:05:51 AM9/27/11
to pinba-e...@googlegroups.com
Спасибо за группу на русском, все-таки так изъяснится будет проще.
>>Show me what you see with `SHOW CREATE TABLE request`, for example.
mysql> SHOW CREATE TABLE request;
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| request | CREATE TABLE `request` (
  `id` int(11) NOT NULL DEFAULT '0',
  `hostname` varchar(32) DEFAULT NULL,
  `req_count` int(11) DEFAULT NULL,
  `server_name` varchar(64) DEFAULT NULL,
  `script_name` varchar(128) DEFAULT NULL,
  `doc_size` float DEFAULT NULL,
  `mem_peak_usage` float DEFAULT NULL,
  `req_time` float DEFAULT NULL,
  `ru_utime` float DEFAULT NULL,
  `ru_stime` float DEFAULT NULL,
  `timers_cnt` int(11) DEFAULT NULL,
  `status` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='request' |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


>>Their contents is dynamic, so if you have any requests incoming (do you? you didn't specify this), you should see some data in the tables, too.
Что значит, есть ли у меня входящие запросы?
Если extension работает, то запросы быть должны, ведь так (имеется конечно ввиду, что живые и рабочие сайты на пхп есть и они работают на сервере, где установлен pinba-extension)?

tony2001

unread,
Sep 27, 2011, 4:14:01 AM9/27/11
to pinba-e...@googlegroups.com
>ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='request'

Ну я сразу так и предположил: у вас не загрузился плугин, но таблички вы при этом создали.
Т.к. плугин в этот момент не работал, MySQL создал таблицы с дефолтовым ENGINE вместо Пинбы (да, он зачем-то делает это молча).

Таблицы надо просто пересоздать заново с уже загруженным плугином:
mysql -D pinba < default_tables.sql

Nafania

unread,
Sep 27, 2011, 4:22:28 AM9/27/11
to pinba-e...@googlegroups.com
Все заработало.
Большое спасибо еще раз.
Можно ли в этой группе создать топик с описанием установки для не очень просвещенных людей?
Оказывается довольно много подводных камней имеется, которые не освещены или на них не акцентируется внимание в гайде по установке.

Antony Dovgal

unread,
Sep 27, 2011, 4:35:01 AM9/27/11
to pinba-e...@googlegroups.com

Конечно.
Если есть какие-то предложения/уточнения - я добавлю их в вики.

--
Wbr,
Antony Dovgal
---
http://pinba.org - realtime profiling for PHP

Antony Dovgal

unread,
Jul 20, 2012, 9:07:09 AM7/20/12
to pinba-e...@googlegroups.com
On 2012-07-20 15:42, Aleksey Kushnirev wrote:
> а у меня проблема с созданием БД
> mysql -D pinba < default_tables.sql
> ERROR 1005 (HY000) at line 3: Can't create table 'pinba.request' (errno: 140)

Эта ошибка скорее всего означает, что исходники MySQL, с которыми собиралась пинба, были сконфигурированы с другими параметрами, чем рабочий сервер mysql.
В результате размеры структур и сами структуры MySQL в пинбе другие и она не может прочитать правильные поля оттуда.

Aleksey Kushnirev

unread,
Jul 20, 2012, 9:12:34 AM7/20/12
to pinba-e...@googlegroups.com
скорее всего вы правы так как mysql ставил другой человек
сейчас попробую узнать с какими параметрами он ставился и отпишусь о результате

Aleksey Kushnirev

unread,
Jul 20, 2012, 9:22:44 AM7/20/12
to pinba-e...@googlegroups.com
mysql_config 
Usage: /usr/bin/mysql_config [OPTIONS]
Options:
        --cflags         [-I/usr/include/mysql -fPIC -g -static-libgcc -fno-omit-frame-pointer -DPERCONA_INNODB_VERSION=rel24.1    -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
        --include        [-I/usr/include/mysql]
        --libs           [-L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl]
        --libs_r         [-L/usr/lib64 -lmysqlclient_r -lpthread -lm -lrt -ldl]
        --plugindir      [/usr/lib64/mysql/plugin]
        --socket         [/var/lib/mysql/mysql.sock]
        --port           [0]
        --version        [5.5.20]
        --libmysqld-libs [-L/usr/lib64 -lmysqld]
        --variable=VAR   VAR is one of:
                pkgincludedir [/usr/include/mysql]
                pkglibdir     [/usr/lib64]
                plugindir     [/usr/lib64/mysql/plugin]

как понять какие из этих конфигов нужно заюзать при сборе engine?

Antony Dovgal

unread,
Jul 20, 2012, 1:16:34 PM7/20/12
to pinba-e...@googlegroups.com
Это конфиг клиентской либы.
Конфигурация сервера была задана при сборке, её надо искать в spec-файле из SRPM-пакета или в control-файле .deb-пакета, или спрашивать у тех, кто собирал.
Да, всё не просто, к сожалению. И исправлять ситуацию разработчики не спешат: http://bugs.mysql.com/bug.php?id=44722

Aleksey Kushnirev

unread,
Jul 23, 2012, 4:59:32 AM7/23/12
to pinba-e...@googlegroups.com
мне отписался тот человек который собирал мускуль " Я тогда скачал с сайта перконы srpm пакет и с ним собрал и пинбу и из него же собирал мускул"
я открыл файл percona-server.spec
весь его просмотрел но так и не понял где там конфиги с которыми он собирается.....если ткнете носом где все эти вещи лежат буду очень признателен.

Игорь К.

unread,
Sep 11, 2012, 10:54:02 AM9/11/12
to pinba-e...@googlegroups.com
У меня также проблема с созданием таблицы. 
ERROR 1005 (HY000) at line 3: Can't create table 'pinba.request' (errno: 140)
Тоже использую Percona Server, ставил изначально из бинарников. 
Вот что пишут разработчики Percona Server:
Here is an example using a configure line similar to the options that Percona uses to produce binaries: 
$ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF

У меня Percona-Server-5.5.25a-rel27.1. Я скачал исходники того же самого сервера, и сделал указанный cmake
С помощью них скомпилировал Pinba Engine. Таблица всё равно не создаётся.

Тогда я докомпилировал исходники до рабочего сервера, и запустил его. Но без изменений - таблицу pinba.request создать не удаётся.

С другой версией исходников Pinba Extension вообще не устанавливается на сервер, а значит условие рабочий_сервер==исходники у меня выдержано.

В логе ничего не видно. Что думает по этому поводу уважаемый разработчик Tony?
Исходники от Percona настолько модифицированы, что таблицы на движке PINBA в нём не поддерживаются?


понедельник, 23 июля 2012 г., 12:59:32 UTC+4 пользователь Aleksey Kushnirev написал:

Antony Dovgal

unread,
Sep 11, 2012, 11:08:40 AM9/11/12
to pinba-e...@googlegroups.com
On 2012-09-11 18:54, Игорь К. wrote:
> У меня также проблема с созданием таблицы.
> ERROR 1005 (HY000) at line 3: Can't create table 'pinba.request' (errno: 140)
> Тоже использую Percona Server, ставил изначально из бинарников.
> Вот что пишут разработчики Percona Server:
> Here is an example using a configure line similar to the options that Percona uses to produce binaries:
>
> $ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF
>
>
> У меня Percona-Server-5.5.25a-rel27.1. Я скачал исходники того же самого сервера, и сделал указанный cmake
> С помощью них скомпилировал Pinba Engine. Таблица всё равно не создаётся.
>
> Тогда я докомпилировал исходники до рабочего сервера, и запустил его. Но без изменений - таблицу pinba.request создать не удаётся.

В другом треде говорят, что выключение WITH_FAST_MUTEXES:BOOL=OFF в CMakeCache.txt помогло.

> С другой версией исходников Pinba Extension вообще не устанавливается на сервер, а значит условие рабочий_сервер==исходники у меня выдержано.
>
> В логе ничего не видно. Что думает по этому поводу уважаемый разработчик Tony?

Я уже написал тут: http://bugs.mysql.com/bug.php?id=44722 всё, что я думаю.
К сожалению, это не особо помогло.

Процесс сборки и раньше был непрост, а теперь появился дополнительный уровень сложности в виде CMake-based build system.
Пока не исправится эта ситуация, сборка так или иначе будет представлять из себя чёртов квест.

> Исходники от Percona настолько модифицированы, что таблицы на движке PINBA в нём не поддерживаются?

Я так не думаю.
Если оно вообще собирается, то они используют те же структуры с теми же именами, а значит всё должно работать.

Кроме того, какое-то время назад я собирал и запускал всё это с Percona-Server-5.5.13-rel20.4 без каких-либо проблем.
Правда, я не использовал никакие рекомендованные опции, делал просто cmake . && make install с префиксом.

А вам правда нужна Перкона?
По-моему проще поднять отдельный инстанс простого MySQL и использовать его только под пинбу,
в этом случае все перконовские патчи не имеют значения.

Aleksey Kushnirev

unread,
Sep 11, 2012, 11:22:12 AM9/11/12
to pinba-e...@googlegroups.com
У меня под perconu так и не удалось собрать её...в итоге обошелся малой кровью поставил мускуль на другом серваке(выступающим в роли firewall) и благополучно забыл про всё это веселье.

вторник, 11 сентября 2012 г., 17:54:02 UTC+3 пользователь Игорь К. написал:

Игорь К.

unread,
Sep 12, 2012, 8:50:25 AM9/12/12
to pinba-e...@googlegroups.com
Спасибо за советы. Всё таки решил добить перкону, и у меня получилось.
Для этого мне понадобилось скачать сорцы Percona Server 5.5, на основе них скопилировать Pinba Extension. Далее я скомпилировал сам Mysql (percona) из тех же исходников. Никаких флагов в cmake не применял. 
Далее я поступил как посоветовал Tony

По-моему проще поднять отдельный инстанс простого MySQL и использовать его только под пинбу, 
в этом случае все перконовские патчи не имеют значения. 
 
но c тем отличием, что я всё таки решил добить именно перкону :
Поменял всё окружение нового mysql-сервера, и запустил ещё один процесс mysqld на другом порту. В общем отдельный сервер под пинбу.
и engine и таблицы установились без проблем.

В итоге я сделал вывод, что распространяемые перконой готовые rpm и binary пакеты всё таки отличаются от того сервера, что получается из одноименных sources.
Если хотите использовать Percona, то компилируйте рабочий сервер из исходников сами, с этими же исходниками собирайте pinba engine.

вторник, 11 сентября 2012 г., 19:08:44 UTC+4 пользователь tony2001 написал:

Antony Dovgal

unread,
Sep 12, 2012, 9:45:57 AM9/12/12
to pinba-e...@googlegroups.com
On 2012-09-12 16:50, Игорь К. wrote:
> Спасибо за советы. Всё таки решил добить перкону, и у меня получилось.
> Для этого мне понадобилось скачать сорцы Percona Server 5.5, на основе них скопилировать Pinba Extension. Далее я скомпилировал сам Mysql (percona) из тех же исходников. Никаких флагов в cmake не применял.
> Далее я поступил как посоветовал Tony
>
> По-моему проще поднять отдельный инстанс простого MySQL и использовать его только под пинбу,
> в этом случае все перконовские патчи не имеют значения.
>
> но c тем отличием, что я всё таки решил добить именно перкону :
> Поменял всё окружение нового mysql-сервера, и запустил ещё один процесс mysqld на другом порту. В общем отдельный сервер под пинбу.
> и engine и таблицы установились без проблем.
>
> В итоге я сделал вывод, что распространяемые перконой готовые rpm и binary пакеты всё таки отличаются от того сервера, что получается из одноименных sources.
> Если хотите использовать Percona, то компилируйте рабочий сервер из исходников сами, с этими же исходниками собирайте pinba engine.

Спасибо за описание решения!

No1

unread,
Sep 13, 2012, 5:37:34 AM9/13/12
to pinba-e...@googlegroups.com
В закладки)
Долго мучался с freebsd+pinba)

2012/9/12 Antony Dovgal <antony...@gmail.com>

Илья Антипов

unread,
Sep 4, 2013, 3:23:25 AM9/4/13
to pinba-e...@googlegroups.com
Долго мучился с такой же проблемой - может кому-то поможет.

В итоге помогло следующее

find / -name mysql_version.h

Будет найдено несколько файлов. У меня они были в /usr/include и /usr/include/mysql Несмотря на то, что собирал 5.5.33 в заголовках находились версии 5.1 и 5.5 старых установок. Все заголовки, которые не имеют отношение к текущей версии удалил через rm -r /usr/include/mysql*

После этого pinba стала обращаться к правильных заголовкам и все собралось и запустилось нормально. Не совсем понятно почему Pinba ищет заголовки не в том каталоге, котором указываешь, а в других.

Всем удачи!

четверг, 13 сентября 2012 г., 13:37:34 UTC+4 пользователь No1 написал:

Antony Dovgal

unread,
Sep 9, 2013, 5:44:13 AM9/9/13
to pinba-e...@googlegroups.com
On 2013-09-04 11:23, О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ wrote:
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
>
> find / -name mysql_version.h
>
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ /usr/include О©╫ /usr/include/mysql О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ 5.5.33 О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ 5.1 О©╫ 5.5 О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ rm -r /usr/include/mysql*
>
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ pinba О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ Pinba О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ =)
О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ -I/usr/include -I/path/to/mysqlsrc, О©╫О©╫О©╫ О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ /usr/include

Илья Антипов

unread,
Sep 23, 2013, 2:49:04 PM9/23/13
to pinba-e...@googlegroups.com
Здравствуйте.
Берет наверняка компилятор, только зачем же при сборке указывается путь к исходникам mysql если берет он их все равно из другого места. 


9 сентября 2013 г., 13:44 пользователь Antony Dovgal <antony...@gmail.com> написал:
On 2013-09-04 11:23, Илья Антипов wrote:
Долго мучился с такой же проблемой - может кому-то поможет.

В итоге помогло следующее

find / -name mysql_version.h

Будет найдено несколько файлов. У меня они были в /usr/include и /usr/include/mysql Несмотря на то, что собирал 5.5.33 в заголовках находились версии 5.1 и 5.5 старых установок. Все заголовки, которые не имеют отношение к текущей версии удалил через rm -r /usr/include/mysql*

После этого pinba стала обращаться к правильных заголовкам и все собралось и запустилось нормально. Не совсем понятно почему Pinba ищет заголовки не в том каталоге, котором указываешь, а в других.

Компилятор ищет, не пинба =)
Там же наверняка выходит что-то вроде -I/usr/include -I/path/to/mysqlsrc, вот он и подбирает из /usr/include


--
Wbr,
Antony Dovgal
---
http://pinba.org - realtime profiling for PHP

--
You received this message because you are subscribed to the Google Groups "Pinba Engine development list (in Russian)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinba-engine-ru+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
С уважением,
Антипов Илья

Antony Dovgal

unread,
Sep 24, 2013, 3:03:38 AM9/24/13
to pinba-e...@googlegroups.com
On 2013-09-23 22:49, Илья Антипов wrote:
> Здравствуйте.
> Берет наверняка компилятор, только зачем же при сборке указывается путь к исходникам mysql если берет он их все равно из другого места.

Компилятор ищет заголовки в дефолтовых путях, потом, если не находит там, в указанных.
Это можно отключить опцией -nostdinc, только тогда и системные заголовки перестанут искаться в дефолтовых путях.

Если убрать явное указание путей к заголовкам, то для сборки придется сначала MySQL сделать make install и инсталлировать заголовки в систему.
Reply all
Reply to author
Forward
0 new messages