Назад | Перейти на главную страницу

MySql не принимает изменения в файл my.cnf в пользовательском AMI Ubuntu. Как это исправить?

Я создал AMI из моего работающего экземпляра EC2 Ubuntu. Затем я поднял его, и MySql не работает таким же образом на этом скопированном экземпляре.

1) Изменения в моем файле my.cnf не принимаются.

2) Я не могу запросить свою базу данных, так как это дает мне следующую ошибку:

ERROR 1286 (42000): Unknown table engine 'InnoDB'

Полагаю, MySql настроен неправильно? Я новичок в MySql, так что вы можете сказать мне, что я делаю не так, пожалуйста?

Заранее спасибо.

Я узнал (после нескольких часов устранения неполадок), что если что-то пойдет не так в вашей настройке, ни одна из настроек не будет обновлена.

Например, в моем случае репликация была сломана. Однако вместо

Slave_IO_Running: No
Slave_SQL_Running: No

Когда отображается «НЕТ», имя главного хоста также не обновляется, что я изменил в моем файле .cnf. Кроме того, skip-innoDB не был установлен в моем файле .cnf, но innoDB все еще не включался. Это заставило меня подозревать, что проблема связана с файлом .cnf.

Однако оказалось, что это две разные вещи.

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

Вторая проблема заключалась в том, что репликации не было. Это потому, что у меня не было:

СБРОСИТЬ ВЕДОМУ

А затем соответствующим образом изменено:

MASTER_LOG_POS

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

Почему репликация MySQL такая сложная?

Отличное руководство размещено в качестве ответа там.

У меня есть указатели на все это в моем журнале SQL, расположенном в:

/var/log/mysql/error.log

В нем были следующие записи:

InnoDB: Error: cannot allocate 1048592384 bytes of

InnoDB: memory with malloc! Total allocated memory

InnoDB: by InnoDB 38079360 bytes. Operating system errno: 12

InnoDB: Check if you should increase the swap file or

InnoDB: ulimits of your operating system.

InnoDB: On FreeBSD check you have compiled the OS with

InnoDB: a big enough maximum process size.

InnoDB: Note that in most 32-bit computers the process

InnoDB: memory space is limited to 2 GB or 4 GB.

InnoDB: We keep retrying the allocation for 60 seconds...

InnoDB: Fatal error: cannot allocate the memory for the buffer pool

110616 18:41:58 [ERROR] Plugin 'InnoDB' init function returned error.

110616 18:41:58 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

110616 18:41:58 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay- log=ip-xxxx-relay-bin' to avoid this problem.

110616 18:41:58 [ERROR] Failed to open the relay log 'xxxx' (relay_log_pos 251)

110616 18:41:58 [ERROR] Could not find target log during relay log initialization

110616 18:41:58 [ERROR] Failed to initialize the master info structure

Я очень надеюсь, что это когда-нибудь поможет кому-нибудь!

Проверьте / var / log / syslog на наличие ошибок, возникших во время запуска MySQL. Возможно, ваш файл /etc/mysql/my.cnf содержит инструкцию skip-innodb, которая отключит таблицы InnoDB.