2010-03-05 3 views
0

После изменения пользователем MySQL таблицы (mysql.user) путем добавления нового поляРедактирование MySQL системной таблицы

ALTER TABLE mysql.user ADD id integer(11) unsigned FIRST; 

и перезапуска MySQL демона, теперь невозможно войти в систему как любой пользователь.

Мой вопрос: Какое использование mecanism использует mysql, которое не позволяет изменять его основные системные таблицы? Я могу понять, что мне это не понравится, если я отредактирую определения полей или, что хуже, если я удалю некоторые поля, но я считаю довольно странным, что он просто не согласен с тем, что добавляю новые поля. В чем проблема?

+0

Помимо этого вы, вероятно, не следует изменять основные системные таблицы (идентификация пользователя работает нормально без столбца id), по-видимому, вам нечего мешать. – mpe

ответ

1

Я немного удивлен, что еще не было поля с именем id.

Несколько идей приходят на ум, но они все домыслы:

  • код ожидает 37 полей в mysql.user; добавление 38th вызвало переполнение структуры данных
  • id является внутренне особенным и добавление его вызвало неожиданное условие
  • целостность системы
  • и здравомыслия проверок выявлены неожиданные изменения и закрыть защитно
Смежные вопросы