2016-03-23 4 views
1

Я пытаюсь использовать Federated engine of MariaDB 10.1.12 для создания таблиц, основанных на таблицах в удаленной базе данных. После MariaDB instructions о том, как использовать реализацию FederatedX, в базе данных db1 создать таблицу какКак создать федеративную таблицу в MariaDB без указания столбцов

CREATE TABLE test_table (
    id  int(20) NOT NULL auto_increment, 
    name varchar(32) NOT NULL default '', 
    other int(20) NOT NULL default '0', 
    PRIMARY KEY (id), 
    KEY name (name), 
    KEY other_key (other)) 
DEFAULT CHARSET=latin1; 

Теперь, когда я хочу, чтобы увидеть эту таблицу во второй базе данных db2, используя двигатель Федеративного, я могу выдать

CREATE TABLE test_table (
    id  int(20) NOT NULL auto_increment, 
    name varchar(32) NOT NULL default '', 
    other int(20) NOT NULL default '0', 
    PRIMARY KEY (id), 
    KEY name (name), 
    KEY other_key (other) 
) ENGINE=FEDERATED 
DEFAULT CHARSET=latin1 
CONNECTION='mysql://user_x:[email protected]/db1/test_table'; 

Все это копируется из документации MariaDB и работает хорошо. Однако, если я пытаюсь создать таблицу без явного дублирования определения структуры таблицы - пример, приведенный в той же документации

CREATE TABLE test_table ENGINE=FEDERATED DEFAULT CHARSET=latin1 
CONNECTION='mysql://user_x:[email protected]/db1/test_table'; 

MariaDB реагирует с ошибкой

ERROR 1113 (42000): A table must have at least 1 column 

Могу ли я что-то отсутствует или невозможно ли использовать объединенные таблицы без указания отдельных столбцов?

+0

Я получаю такое же поведение с двигателем CONNECT на MariaDB 10.0 +0,23. Документы указывают, что 10.0.2 - это релиз, который ввел автоматическое обнаружение, поэтому я не понимаю его. – noobish

+0

Просто нашел [это] (https://mariadb.atlassian.net/browse/MDEV-4555?focusedCommentId=36154&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36154), указав, что есть ошибка с автоматическим обнаружением после выпуска 10.0.3. Это было написано около 10.0.4. – noobish

+0

Ваши комментарии подсказывали мне, что это настоящая ошибка; Я только что открыл новую тему (https://jira.mariadb.org/browse/MDEV-10069). –

ответ

1

Похоже, что при стандартной установке MariaDB на Ubuntu 14.04 активен старый Federated engine, а не новый вариант FederatedX. Только последний поддерживает автоматическое обнаружение столбцов. Чтобы исправить это, я предпринял следующие шаги:

uninstall soname 'ha_federated'; 

удалить интегрированный плагин. После перезагрузки сервера правильный загружается

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

show engines; 

Если все правильно, то должна быть эта линия на выходе:

| FEDERATED   | YES  | FederatedX pluggable storage engine |