2014-01-08 3 views
2

Я сделал mysqldump из нашего Drupal6/CiviCRM4 Civi DB и пытаюсь импортировать его в установку Drupal7/Civi4 dev, но продолжаю получать «ERROR 1227 (42000) в строке 369: доступ запрещен; вам нужна привилегия SUPER для этой операции "Ошибка суперпользователя при импорте mysqldump?

Из того, что я могу сказать, у пользователя есть правильные разрешения, как указано в cpanel сайта, все они отображаются правильно в команде импорта. Я не сталкивался с этой ошибкой, прежде чем делать аналогичные действия на других установках. Помоги пожалуйста?

ответ

0

Это может быть одна из двух вещей.

Во-первых, если у вас есть версии MySQL, прежде чем 5.1.6, вам не нужно разрешение SUPER независимо от того, что: http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+MySQL+Permission+Requirements

Однако, так как он уже работает отлично, и вы просто пытаетесь импортировать дамп-файл, я думаю, что, вероятно, ваш файл дампа имеет функции, в которых определитель устанавливается как пользователь базы данных для старого сайта (скажем, «foo @ localhost»). Вам не разрешено устанавливать определитель как кто-то, кроме вас, без привилегии SUPER. Если у нового сайта есть другой пользователь (возможно, «bar @ localhost»), вы действуете как «bar @ localost», пытающийся установить функцию, определенную «foo @ localhost».

В вашем отвале, вы, вероятно, увидеть что-то вдоль линий

CREATE DEFINER=`foo`@`localhost` FUNCTION ... 

Вы можете сделать одну из двух вещей:

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

Вы также должны знать, что «foo @ localhost» и «foo @%» являются отдельными пользователями, даже если они имеют одинаковое имя и пароль.

1

База данных Drupal/CiviCrm использует триггеры. Для импорта триггера при импорте базы данных требуется привилегия SUPER. Если вы ограничены привилегиями обычного пользователя для тех, которые необходимы при запуске Civi, вы можете создать нового пользователя MySQL только для импорта и предоставить этим пользователям ВСЕ-привилегии в базе данных. После завершения импорта удалите пользователя с повышенными привилегиями.

Смежные вопросы