Как я могу включить федеративный двигатель в MySQL после установки?
У меня mysql 5.1.44
mysql> шоу двигателей; +------------+---------+ | Двигатель | Поддержка | +------------+---------+ | ndbcluster | НЕТ | | MRG_MYISAM | ДА | | Черная дыра | ДА | | CSV | ДА | | ПАМЯТЬ | ДА | | ФЕДЕРАЦИЯ | НЕТ | | АРХИВ | ДА | | InnoDB | ДА | | MyISAM | ПО УМОЛЧАНИЮ |
Теперь мне нужно включить федеративный движок в MySQL, как я могу это сделать?
3 ответа
Отредактируйте /etc/my.cnf и в разделе [mysqld] добавьте строку:
федеративный
это эквивалентно указанию --federated в командной строке
Я знаю, что пост немного устарел, но, похоже, у многих людей возникают проблемы с федеративными движками.
Когда исполняемые файлы mysql устанавливаются через yum, у вас уже есть плагины HA (High Availability). Вам просто нужно загрузить плагины в CLI mysql.
Вот основной процесс:
Запустите mysqld, если он еще не запущен. Убедитесь, что 'federated' НЕ находится в /etc/my.cnf на этом этапе.
EX: В это время /etc/my.cnf будет выглядеть так из стандартной установки YUM....
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Войдите в CLI mysql с root (или другой учетной записью с достаточными привилегиями).
Type: show engines;
В этот момент вы не должны видеть FEDERATED движок, например так:
mysql> show engines;
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+------------------------------------------------------------+--- -----------+------+------------+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
5 rows in set (0.00 sec)
-> КОНЕЦ ПАСТЫ <-
Чтобы включить механизм объединения, введите следующее:
install plugin federated soname 'ha_federated.so'
ТЕПЕРЬ, когда вы "покажете двигатели", вы увидите ФЕДЕРАЛЬНЫЙ двигатель, но выключенный...
Это будет выглядеть так:
mysql> шоу двигателей; +------------+---------+------------------------------------------------------------+--------------+------+------------+ | Двигатель | Поддержка | Комментарий | Транзакции | XA | Точки сохранения | + ------------ + --------- + -------------------------- ---------------------------------- + -------------- + ------ + ------------ + | ФЕДЕРАЦИЯ | НЕТ | Объединенный механизм хранения MySQL | NULL | NULL | NULL | | CSV | ДА | CSV хранилище данных | НЕТ | НЕТ | НЕТ | | MyISAM | ПО УМОЛЧАНИЮ | Движок по умолчанию с MySQL 3.23 с отличной производительностью | НЕТ | НЕТ | НЕТ | | InnoDB | ДА | Поддерживает транзакции, блокировку на уровне строк и внешние ключи | ДА | ДА | ДА | | ПАМЯТЬ | ДА | На основе хэша, хранится в памяти, полезно для временных таблиц | НЕТ | НЕТ | НЕТ | | MRG_MYISAM | ДА | Коллекция идентичных таблиц MyISAM | НЕТ | НЕТ | НЕТ | +------------+---------+------------------------------------------------------------+--------------+------+------------+ 6 рядов в наборе (0,00 сек)
Теперь вы можете безопасно добавить строку 'federated' в файл /etc/my.cnf следующим образом:
[ТуздЫ] каталогу_данных =/ вар / Библиотека / MySQL сокет =/ вар / Библиотека / MySQL /mysql.sock пользователь = MySQL # Отключение символических ссылок рекомендуется для предотвращения различных угроз безопасности символические ссылки =0 федеративный [Mysqld_safe] срубы ошибка =/ вар / Журнал /mysqld.log PID-файл =/ вар / запустить / туздЫ /mysqld.pid
Перезапустите mysqld (перезапустите службу mysqld и т. Д.)
После перезагрузки вернитесь в CLI mysql.
Type 'show engines;'
Теперь вы должны увидеть доступный FEDERATED Engine и с SUPPORT как YES.
mysql> шоу двигателей; + ------------ + --------- + -------------------------- ---------------------------------- + -------------- + ------ + ------------ + | Двигатель | Поддержка | Комментарий | Транзакции | XA | Точки сохранения | + ------------ + --------- + -------------------------- ---------------------------------- + -------------- + ------ + ------------ + | ФЕДЕРАЦИЯ | ДА | Объединенный механизм хранения MySQL | НЕТ | НЕТ | НЕТ | | CSV | ДА | CSV хранилище данных | НЕТ | НЕТ | НЕТ | | MyISAM | ПО УМОЛЧАНИЮ | Движок по умолчанию с MySQL 3.23 с отличной производительностью | НЕТ | НЕТ | НЕТ | | InnoDB | ДА | Поддерживает транзакции, блокировку на уровне строк и внешние ключи | ДА | ДА | ДА | | ПАМЯТЬ | ДА | На основе хэша, хранится в памяти, полезно для временных таблиц | НЕТ | НЕТ | НЕТ | | MRG_MYISAM | ДА | Коллекция идентичных таблиц MyISAM | НЕТ | НЕТ | НЕТ | + ------------ + --------- + -------------------------- ---------------------------------- + -------------- + ------ + ------------ + 6 строк в наборе (0,00 сек)
И все готово... иди и создать федеративные таблицы...
Удачи!
Начиная с MySQL 5.0.64, механизм хранения FEDERATED не включен по умолчанию на работающем сервере; чтобы включить FEDERATED, вы должны запустить двоичный файл сервера MySQL, используя
--federated
вариант. - Документация MySQL
Чтобы использовать --federated
Опция в файле конфигурации опустите --
,
пример
my.cnf
[mysqld]
federated
Я пробовал Foward Engineer в Workbench, и эта ошибка появилась мне, поэтому моим решением было Workbench -> Load your Model -> Mysql Model -> щелкните в таблице, которая показывала ошибку, и нажмите Edit, после этого просто измените Двигатель для InnoDB.
MYSQL 8