Пытаюсь подключить по документации к MariaDB мантикру, но что то вот не получается, что я делаю не так? Получаю ошибку #1434 - Can't create federated table. Foreign data src error: database: 'DB' username: 'FEDERATED' hostname: '127.0.0.1'
MariaDB в докере latest Manticore тоже в докере latest
С сетями без заморочек --network=host так что они друг друга видят по 127.0.0.1, проблем со связью нет.
В марии предварительно выполнил: INSTALL SONAME 'ha_federatedx';, далее посмотрел какой на самом деле в образе по умолчанию есть rt индекс и написал следующее:
CREATE TABLE t1
(
id BIGINT NOT NULL,
gid INTEGER UNSIGNED NOT NULL,
query VARCHAR(3072) NOT NULL,
INDEX(query)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://FEDERATED@127.0.0.1:9306/DB/testrt';
Пробовал так же нормальный Ip машины: 192.168.88.71
CREATE TABLE t1
(
id BIGINT NOT NULL,
gid INTEGER UNSIGNED NOT NULL,
query VARCHAR(3072) NOT NULL,
INDEX(query)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://FEDERATED@192.168.88.71:9306/DB/testrt';
Были ещё кучи других вариантов где id unsigned integer, варианты с “not null” и без для обоих (id, gid), но всё безтолку, результат один: #1434 - Can't create federated table. Foreign data src error: database: 'DB' username: 'FEDERATED' hostname: '127.0.0.1'
mysql> describe testrt;
+---------+--------+------------+
| Field | Type | Properties |
+---------+--------+------------+
| id | bigint | |
| title | field | |
| content | field | |
| gid | uint | |
+---------+--------+------------+
4 rows in set (0.00 sec)
Я постараюсь собрать тогда все кейсы и докер файлы, были ещё обнаружены проблемы с переполнением буфера, когда в колонке query выводится просто случайный кусок памяти, когда id и прочие int атрибуты индекса становились нулями. Тут ещё такой момент, federated в марии считается устаревшим плагином и более не разрабатывается, ему на смену пришёл federatedX, который они официально рекомендуют использовать вместо federated. Проблема может быть и в нём (federated), а мантикора, к сожалению, не работает с federatedX.
Спасибо. А можете ещё рассказать почему вам важно использовать Manticore через Federated? Мы получаем не очень много отзывов об этой интеграции и было бы интересно узнать почему она кажется важной в вашем случае.
В моём случае я считаю это очень удобным, когда делается один запрос в марию, с объединением таблицы марии с результатами из мантикоры, как минимум это гораздо быстрее работает чем если сделать отдельный запрос в мантикору, получить список id и сделать запрос в марию передав этот список и получить результат, объединённый запрос так же позволяет экономить на написании этой лишней логики с тасканием id через клиента между сервисами, но на вкус и цвет все фломастеры разные. Я так же предпочитаю работать с базами (не важно какими) через орм, в данном случае, в таблицах марии у меня хранится большой, мноогоуровневый json с кучей текстовых и числовых атрибутов, который я и индексирую в мантикоре… Получить через орм массив нужных мне записей через JOIN запрос с federated таблицей, после чего орм в сущности через мапперы разбирает этот json на внутренние объекты, это просто очень удобно… К слову с мантикорой я тоже через орм работаю, инсерты в индекс делает орм. И это тоже очень удобно, правда для инсертов я использую прямое соединение с мантикорой уже, а не через марию.
В идеале, я вообще предпочёл бы чтоб всё работало через одно соединение конечно, т.е. мария в данном случае была бы неким “прокси”, я пытался поэкспериментировать в этом направлении используя CONNECT плагин представляя мантикору другим mysql сервером, но там оказалось всё грустно, он выполняет много запросов которые для mysql норма, а в мантикоре этот синтаксис не поддерживается. А так это было бы вообще супер если инсерты в мантикору можно было бы проксировать… Ну да ладно, это мало кому нужно…