Почему мой сервер MySQL не распознает отношения внешних ключей? - PullRequest
1 голос
/ 21 августа 2011

Что ж, я получил более 100 ответов на мои вопросы о переполнении стека, но пришло время, наконец, зарегистрироваться и опубликовать свой первый вопрос!

Хорошо, у меня есть таблица для пользователей моей программы и 11 таблиц, прикрепленных к этой таблице с отношениями 1: 1 и 1: M. Большинство внешних ключей установлены на ON UPDATE CASCADE ON DELETE RESTRICT. Если я удаляю центральную таблицу, это позволяет мне, несмотря на внешние ключи, которые должны быть на месте. Когда я имел дело с реляционными базами данных ранее, я получал следующие сообщения об ошибках:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails
#1452 - Cannot add or update a child row: a foreign key constraint fails

Обратите внимание, это один раз, когда я хочу сообщений об ошибках. Я хочу функциональность реляционной базы данных, и все мои таблицы InnoDB. Google не помог мне с этим, и я не смог найти ничего в документации MySQL.

1 Ответ

0 голосов
/ 22 августа 2011

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

service mysqld stop
cd /var/lib/mysql
mkdir old
mv ib* old
vim /etc/my.cnf
servie mysqld start

Для vim убедитесь, что innodb_buffer_pool_size, innodb_log_file_size и innodb_log_buffer_size установлены правильно. В другом посте на форумах MySQL было немного неверно сконфигурировано, а именно, что innodb_log_file_size должен составлять 25% от innodb_buffer_pool_size, поэтому у меня есть 16M, 4M и 8M для этих трех соответственно.

...